K& R C计数字符

时间:2014-02-21 18:32:53

标签: c linux

我正在研究K& R书,我正在编写如何从文本流中计算字符的代码示例。我复制了他们的代码并尝试运行它,但是当命令行提示你输入字符时,循环不会退出,因此永远不会打印出字符数。这里有错误,我没有抓到?

#include <stdio.h>

main() 
{
     long nc;
     nc = 0;
     while(getchar() != EOF) {
          ++nc;
     }
     printf("%1d\n", nc);
}

3 个答案:

答案 0 :(得分:10)

每当你想要停止它时,只需将EOF信号发送到shell。

在Linux上

Ctrl + d 或在Windows上 Ctrl + z

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

答案 1 :(得分:2)

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

答案 2 :(得分:1)

尝试使用CNTL-Z(文件末尾字符)结束字符流。只需点击Enter即可生成CR,这只是另一个要计算的字符