【发布时间】:2015-06-29 14:41:40
【问题描述】:
我想知道 K&R C 的这段代码发生了什么:
#include <stdio.h>
int main() {
double nc;
for (nc = 0; getchar(); ++nc) {
;
}
printf("%.0f\n", nc);
}
当我运行代码 (OS X El Capitan) 时,for 循环没有完成,我无法进入 printf 语句。
【问题讨论】:
-
签出
getchar -
你要终止输入流吗?
-
是的,我输入完成
-
澄清一下,您的程序正在等待输入。如果它在其标准输入连接到终端的情况下运行,这意味着它正在等待您输入内容并关闭流(在 *nix 上,使用 ctrl-d)。尝试从文件重定向输入。
./a.out < file.txt -
enter不会关闭流,它只是写一个换行符。
标签: c