【发布时间】:2013-01-14 19:42:49
【问题描述】:
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;
}
如果我的输入是“6.81 7.kj”,则返回 true!
【问题讨论】:
-
7.是一个有效的浮点数。剩下的输入更多这一事实与调用的成功无关。 -
@Flexo 这应该是答案。
-
@Flexo 谢谢。我刚刚检查了在“ff”处放置更多数字和字符,并且 scanf() 按预期工作。这意味着你是对的。
-
fflush(stdin)具有未定义的行为。只需删除该行。 -
您可能需要重新命名您的标题。
scanf返回 2,不是真的。