【发布时间】:2017-11-16 06:18:50
【问题描述】:
#include <stdio.h>
/* copy input to output */
main()
{
int c;
c = getchar();
while(c != EOF)
{
putchar(c);
c = getchar();
}
return 0;
}
在给定的代码中,程序显示输入字符。 它一个一个地读取每个字符(到变量'c'中)并同时输出相同的读取字符。当输入 EOF 字符时程序终止。
当我在我的 IDE (Code::Blocks 16.01) 中运行代码并输入一个字符串时, 例如:嗨!我叫 C。\n
输出显示在 '\n' 之后,而不是同时显示。 输出不应该是 - "HHii!! MMyy nnaammee iiss CC..”?
粗体字母表示输出。
【问题讨论】:
-
putchar() 返回后,字符被保存在内部缓冲区中,直到程序退出/完成。
-
@ManmeetP 然后按“回车”会冲出缓冲区?
-
#include <stdio.h> int main (void) { int c; while ( (c = getchar ()) != EOF ) putchar (c); return 0; } -
你能尝试一下上面的程序结构吗?请分享输出。
-
试试
fflush(stdout);