我浏览了有关此 K&R 示例的网站,答案似乎围绕着“为什么这是一个类型 int 或什么是 EOF?” 有点家伙。我相信我理解这些。这是我不明白的结果。我曾期望此代码采用单个字符,打印它然后等待另一个字符或 EOF。
我看到的结果是输入等到我按回车键,然后我输入的所有内容都会显示出来,等待输入的时间越长。
while 循环是否只是“循环”,直到我用 carrage return 结束文本流,然后显示 putchar(c) 隐藏在某处的内容?
代码是:
#include <stdio.h>
/* copy input to output: 1st version */
main()
{
int c;
c = getchar();
while(c != EOF) {
putchar(c);
c = getchar();
}
}
现在,如果我在刚才上线之前偷偷输入一个 putchar(c),我就会得到我所期望的。我仍然必须输入文本流并按回车键。结果是流的第一个字符,程序退出。
显然对我来说还有很大的差距。
谢谢您的帮助