我刚刚开始编程c,我正在使用Brian W.Kernighan和Dennis M.Richie的C编程语言。
第一个例子之一是字符计数,并给出了以下程序,但是当我输入一个字符串时,没有打印结果。
#include <stdio.h>
main()
{
long nc;
nc = 0;
while (getchar() != EOF)
++nc;
printf("%ld\n",nc);
}
为什么这不起作用?
答案 0 :(得分:10)
您必须完成输入。您的程序将对字符进行计数,直到遇到EOF
为止。键盘中的EOF
可以通过按 Ctrl-Z 然后 ENTER 发送,如果你在Windows中,或 Ctrl-D 如果您使用的是Linux / OS X,则 ENTER 。
答案 1 :(得分:3)
作为对所提及答案的补充,以下是在按Enter
时如何让您的程序显示结果
#include <stdio.h>
main()
{
long nc;
nc = 0;
while (getchar() != '\n')
++nc;
printf("%ld\n",nc);
}
答案 2 :(得分:1)
getchar()
是缓冲输入。由于它是缓冲的,因此键盘上的The control will wait until you press
输入键。
在您的计划中,您正在通过
EOF
while (getchar() != EOF)
在Windows上,如果需要EOF,则必须输入2个键的组合。即 Ctrl + Z 。 如果你在LINUX上,那么EOF是2个键的组合 Ctrl + D
如前所述,控制将在控制台等待,直到您按 Enter ,因此您必须按
答案 3 :(得分:0)
你必须按 CTRL + D (对于linux)或 CTRL + Z (对于Windows)发送EOF
以结束while循环