创建矢量计算器附加功能。试图为它添加任何值

时间:2013-11-09 21:16:27

标签: c

所以我在这里使用矢量计算器时遇到了一些麻烦,我不能完全确定如何将浮点值附加到矢量上。附加函数已经生成并正常工作,但我遇到的唯一问题是“如果用户想在向量中放置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'之后的字母或无输入等无效内容?

1 个答案:

答案 0 :(得分:0)

想出来,如果你将myScales设置为0.0 / 0.0以获得NaN(可能是?)数字,并检查myScales == myScales,然后检查其余部分,并将myScales设置回0.0 / 0.0它应该可以工作!