K&R C计数字符

我正在编写K&R书,我正在编写如何从文本stream中统计字符的代码示例。 我复制了他们的代码并尝试运行它,但是当命令行提示input字符时,循环不会退出,因此不会输出字符数。 有没有错误,我不抓住?

#include <stdio.h> main() { long nc; nc = 0; while(getchar() != EOF) { ++nc; } printf("%1d\n", nc); } 

每当你想停止它只是发送EOF信号到壳。

在Linux中为Ctrl + d或在Windows中为Ctrl + z

顺便说一句(作为附加信息) Ctrl + C发送SIGINT到Linux和Windows上的进程,它做了类似的事情。

您是否尝试按Ctrl + D (在Linux上)或Ctrl + Z (在Windows上)? 如果是,那么肯定会出现循环。 在按这些键时,它将返回EOF,循环将终止。

尝试用CNTL-Z(文件结束符)结束你的字符流。 只要Enter结果就是另一个字符