"C程序设计语言"中的字符计数器不能按我的预期工作

use*_*005 7 c character

我正在阅读"C编程语言",并使用CodeBlocks完成所有练习.但我无法让我的角色计数器工作,尽管直接从书中复制它.代码如下所示:

#include <stdio.h>

main(){
    long nc;

    nc = 0;

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

当我运行程序时,它会打开一个我可以输入的窗口,但是当我点击输入时,所有发生的事情都会跳过一行,我可以继续输入,但我认为应该打印字符数.

知道出了什么问题吗?

rua*_*akh 7

这一行:

while (getchar() != EOF)
Run Code Online (Sandbox Code Playgroud)

意味着它保持直到读取输入的结束- 直到一行的末尾.(EOF是一个特殊常量,意思是"文件结束".)您需要结束输入(可能使用Ctrl-D或Ctrl-Z)来查看输入的字符总数.