【发布时间】:2013-10-14 11:10:50
【问题描述】:
#include <stdio.h>
main()
{
int c;
c = getchar();
while(c != EOF)
{
putchar(c);
c = getchar();
}
return 0;
}
如何将输入复制到输出程序? 根据我在开始时第一次 getchar() 执行它返回一个字符值并将其存储在 c 变量中。 现在,当执行循环时,编译器会检查 c 是否等于 EOF,如果发现它不等于,则循环开始工作并读取下一条语句,现在它执行 putchar() “当时为什么编译器不打印存储在c 变量而不是首先编译器读取所有字符然后打印这些字符“为什么?
【问题讨论】:
-
为什么编译器不打印存储在 c 变量中的值而不是首先它这样做...这就是
putchar(c);所做的。 -
它没有回答,我想要 putchar(c) 怎么做??
-
您的问题不是很清楚,但我相信我现在明白了,并将在下面提供正确答案而不是此处的评论。
-
猜测:输出被缓冲。在 putchar 后添加
fflush(stdout);。
标签: c