scanf返回2,不是真的
如果我的输入是“6.81 7.kj”,它将返回truescanf返回2,不是真的,c,return,scanf,C,Return,Scanf,如果我的输入是“6.81 7.kj”,它将返回true 7.是有效的浮点。剩下更多的输入与调用的成功无关。7.是一个有效的浮点值。还有更多的输入与呼叫的成功无关。@Flexo这可能就是答案。@Flexo谢谢。我刚刚检查了在“ff”中添加更多的数字和字符,scanf()工作正常。这意味着您是对的。fflush(stdin)具有未定义的行为。只需删除那一行。你可能想重新命名你的标题扫描返回2,不是真的。 int main(void){ float f=0,ff=0; if (scan
7.
是有效的浮点。剩下更多的输入与调用的成功无关。7.
是一个有效的浮点值。还有更多的输入与呼叫的成功无关。@Flexo这可能就是答案。@Flexo谢谢。我刚刚检查了在“ff”中添加更多的数字和字符,scanf()工作正常。这意味着您是对的。fflush(stdin)
具有未定义的行为。只需删除那一行。你可能想重新命名你的标题<代码>扫描返回2,不是真的。
int main(void){
float f=0,ff=0;
if (scanf("%f %f",&f,&ff) == 2){
printf("True\n%f %f",f,ff);fflush(stdout);
} else{
printf("False\n%f %f",f,ff);fflush(stdout);
}
getchar();
return 0;
}