我正在研究K& R书,我正在编写如何从文本流中计算字符的代码示例。我复制了他们的代码并尝试运行它,但是当命令行提示你输入字符时,循环不会退出,因此永远不会打印出字符数。这里有错误,我没有抓到?
#include <stdio.h>
main()
{
long nc;
nc = 0;
while(getchar() != EOF) {
++nc;
}
printf("%1d\n", nc);
}
答案 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
,这只是另一个要计算的字符