简单的C程序,printf不打印

hop*_*ps1 1 c printf while-loop

我是新来的,至少问问题.一直都能在这里找到好的答案.试图回到编程和重新学习C但遇到了奇怪的问题.

#include <stdio.h>

main()
{
    long nc;
    nc = 0;
    while (getchar() != EOF)
    ++nc;
    printf("%ld \n", nc);
}
Run Code Online (Sandbox Code Playgroud)

当我运行它时,在输入任意数量的字符并按Enter后,它不会打印nc的值.点击进入后,我可以再次开始打字,同样的故事.真的看不出有什么不对.唯一可行的方法是将++ nc和printf放在括号内.但是当我按下回车键时,它会给出1到nc的值,这不是我想要的.我只想要nc.毋庸置疑,这种类型也不是问题.提前致谢

Jes*_*mos 7

输入Ctrl-D要发送的终端EOF.你可能想要

while (getchar() != '\n')
Run Code Online (Sandbox Code Playgroud)

相反,如果你想让它与enter一起使用.