为什么这个代码不会计算字符?

时间:2012-03-21 14:24:26

标签: c

为什么这个代码在执行时没有做任何事情?它应该计算字符数 我甚至按下了某人建议的ctrl + z,在我输入随机内容后仍然不会打印多少个字符。我正在使用Windows btw

#include <stdio.h>

int main()
{
  long nc;
  nc = 0;

  while (getchar() != EOF)
    ++nc;

  printf("%ld\n", nc);

  return 0;
}

5 个答案:

答案 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()是一个无限循环。

所以你永远不会退出循环,你会杀死这个过程。