此scanf应始终返回true,直到我输入无数字输入,但此scanf从不执行循环。为什么呢?
示例输入:
10.0 5.0
Press [Enter] to close the terminal ...
代码:
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char** argv)
{
float a, b;
while ( scanf("%f %f", &a, &b) == 1 )
{
printf("%f\n", (a - b) / (a * b));
}
return (EXIT_SUCCESS);
}
答案 0 :(得分:7)
scanf
返回读取的项目数,在本例中为2。
答案 1 :(得分:0)
scanf
返回成功扫描的项目数。在您的情况下,它将返回2表示成功。
答案 2 :(得分:0)
这是因为scanf
会返回2
,这是成功阅读的项目数。
要继续阅读,直到遇到EOF
,您可以执行以下操作:
while ( scanf("%f %f", &a, &b) != EOF )