我正在通读“The C Programming Language”,并使用 CodeBlocks 完成所有练习。但是我无法让我的角色计数器工作,尽管它是直接从书中复制的。代码如下所示:
#include <stdio.h>
main(){
long nc;
nc = 0;
while (getchar() != EOF)
++nc;
printf("%ld\n", nc);
}
当我运行该程序时,它会打开一个我可以输入的窗口,但是当我按下回车键时,它会跳过一行,我可以继续输入,但我认为它应该打印字符数。
知道出了什么问题吗?
最佳答案
这一行:
while (getchar() != EOF)
意味着它一直读取直到输入结束——不是直到一行结束。 (EOF
是一个特殊常量,意思是“文件结尾”。)您需要结束输入(可能使用 Ctrl-D 或 Ctrl-Z)以查看输入的字符总数。
关于来自 "The C Programming Language"的字符计数器未按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12134756/