没有\ n的printf在放置之前不显示文本while(1)

可能重复:
除非换行符在格式字符串中,为什么printf在调用后不会刷新? (在C中)

我在做网络项目时遇到了这个问题。 我能够缩小问题的范围,并像这样重现:

如果您运行此代码,它将不会在屏幕上显示文本。 虽然如果你把\ n放在文本的末尾或者在printf语句之后使用fflush(),它会显示文本。

int main(){ printf("started") ; while(1){ } } 

任何人都可以解释这种行为吗?

如果没有\n ,输出就不会刷新到屏幕上。

添加fflush(stdout);printf之后你应该看到输出。