为什么这个代码在执行时没有做任何事情?它应该计算字符数 我甚至按下了某人建议的ctrl + z,在我输入随机内容后仍然不会打印多少个字符。我正在使用Windows btw
#include <stdio.h>
int main()
{
long nc;
nc = 0;
while (getchar() != EOF)
++nc;
printf("%ld\n", nc);
return 0;
}
答案 0 :(得分:2)
如果您按CTRL+Z
然后输入,则此功能正常。这会触发EOF
。
如果您希望在按Enter键时结束,请使用
while( getchar() != '\n' )
答案 1 :(得分:1)
您的样本是否使用UNICODE = 1进行编译?你必须与WEOF进行比较。
答案 2 :(得分:1)
您可以使用^ D为您的程序提供EOF信号。 很多时候^ Z不起作用。
答案 3 :(得分:0)
尝试拨打your.exe < your_input.file
或按Ctrl+Z
,然后按Enter
以获取EOF
答案 4 :(得分:-2)
因为getchar()是一个无限循环。
所以你永远不会退出循环,你会杀死这个过程。