[英]Why is getchar() not working for me?
我刚刚开始编程c,我正在通过Brian W.Kernighan和Dennis M.Richie的C编程语言工作。
第一个示例之一是字符计数,并给出了以下程序,但是当我输入字符串时,没有打印结果。
#include <stdio.h>
main()
{
long nc;
nc = 0;
while (getchar() != EOF)
++nc;
printf("%ld\n",nc);
}
为什么这不起作用?
你必须完成输入。 您的程序将计算字符数,直到遇到EOF
。 如果您在Windows中,可以通过按Ctrl-Z然后按ENTER键来发送键盘中的EOF
,如果您在Linux / OS X中,则按Ctrl-D然后按ENTER键 。
作为上述答案的补充,以下是按Enter
时如何使程序显示结果
#include <stdio.h>
main()
{
long nc;
nc = 0;
while (getchar() != '\n')
++nc;
printf("%ld\n",nc);
}
getchar()
是缓冲输入。 由于它是缓冲的, The control will wait until you press
键盘上的Enter键。 在你的程序中,你正在检查EOF
while (getchar() != EOF)
在Windows上,如果需要EOF,则必须输入2个键的组合。 即Ctrl + Z. 如果你在LINUX上,那么EOF是2个键Ctrl + D的组合
如前所述,控制将在控制台等待,直到您按Enter键 ,因此您必须按
您必须通过按CTRL + D (对于Linux)或CTRL + Z (对于Windows)来结束while循环来将EOF
发送到程序。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.