0

所以我在这里的矢量计算器遇到了一些麻烦,我不完全确定如何将浮点值附加到矢量。附加功能已制作并正常工作,但我遇到的唯一问题是“如果用户想在向量中放入 0 怎么办?”

现在,我正在使用检查来查看浮点数是否为 0,但显然它不起作用,因为它会拆分出无效的操作数。无论如何我可以看到一个浮点值是否没有输入,或者不是一个数字?到目前为止,这是我遇到问题的部分片段:

//Vector that is intialized
Vector * myVector = alloc_vec();
//character for the options
char optionSelect[100];
//character that picks out the selection.
char select;
//A float for the operations that require an option.
float myScales = 0;

printf("Please enter a selection: ");
fgets(optionSelect, 100, stdin);
sscanf(optionSelect, "\n%c%f", &select,&myScales);

...

else if(select == 'a')
{
    if(myScales != 0)
        {
            myVector = extend_vec(myVector, myScales);
        }
        else
        {
            printf("No operand specified.\n");
        }
}

我可以做些什么来确保可以添加从 -inf 到 inf 的任何浮点值,但是在选择“a”之后,诸如字母或没有输入等无效内容?

4

1 回答 1

0

想通了,如果您将 myScales 设置为 0.0/0.0 以获取 NaN(大概?)数字,然后检查 myScales == myScales 然后检查其余部分,并将 myScales 设置回 0.0/0.0 它应该可以工作!

于 2013-11-09T21:32:27.390 回答