我正在阅读"C编程语言",并使用CodeBlocks完成所有练习.但我无法让我的角色计数器工作,尽管直接从书中复制它.代码如下所示:
#include <stdio.h>
main(){
long nc;
nc = 0;
while (getchar() != EOF)
++nc;
printf("%ld\n", nc);
}
Run Code Online (Sandbox Code Playgroud)
当我运行程序时,它会打开一个我可以输入的窗口,但是当我点击输入时,所有发生的事情都会跳过一行,我可以继续输入,但我认为应该打印字符数.
知道出了什么问题吗?
这一行:
while (getchar() != EOF)
Run Code Online (Sandbox Code Playgroud)
意味着它保持直到读取输入的结束- 不直到一行的末尾.(EOF是一个特殊常量,意思是"文件结束".)您需要结束输入(可能使用Ctrl-D或Ctrl-Z)来查看输入的字符总数.