【发布时间】:2015-11-26 15:52:43
【问题描述】:
在我的程序开始时,我使用do-while 循环来计算用户输入了多少输入。 do-while 循环应在输入EOF (Ctrl+D) 后结束。
然而,我的问题是,当我输入 1 个值然后按 Ctrl+D 时,我的程序说它已经计算了两个输入,而我希望它只有一个。
#include <stdio.h>
main()
{
int n=0;
printf("Enter values.\n");
do {
n++;
}
while (EOF!=scanf("%d",&n));
printf("%d\n",n);
}
如果我编译并运行程序,然后输入 1,然后按 Enter,然后输入 Ctrl+D,它会显示 n=2。为什么是这样?我只输入了 1 个值。
【问题讨论】:
-
因为它是 do..while 循环。
n++将在读取 Ctrl+D 之前执行。最简单的解决方案,改为 while 循环
标签: c loops while-loop eof