可能重复:
Why does printf not flush after the call unless a newline is in the format string? (in C)
我在做网络项目时遇到了这个问题。我能够缩小问题的范围,并像这样重现:
如果您运行此代码,它将不会在屏幕上显示文本。虽然如果你把\ n放在文本的末尾或者在printf语句之后使用fflush(),它会显示文本。
int main(){
printf("started") ;
while(1){
}
}
有人可以解释一下这种行为吗?
答案 0 :(得分:6)
输出不会在没有\n
的情况下刷新到屏幕。
在fflush(stdout);
之后添加printf
,您应该会看到输出。