所以我在这里使用矢量计算器时遇到了一些麻烦,我不能完全确定如何将浮点值附加到矢量上。附加函数已经生成并正常工作,但我遇到的唯一问题是“如果用户想在向量中放置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'之后的字母或无输入等无效内容?
答案 0 :(得分:0)
想出来,如果你将myScales设置为0.0 / 0.0以获得NaN(可能是?)数字,并检查myScales == myScales,然后检查其余部分,并将myScales设置回0.0 / 0.0它应该可以工作!