int main()
{
printf("Whats up");
sleep(3);
printf("StackOverflow? All having a nice day? ");
}
Run Code Online (Sandbox Code Playgroud)
为什么3秒后输出"Whats up Stack .."而不是先"Whats up"然后,3秒后剩下的?
这是因为stdout通常是行缓冲的.所以你的C库缓冲输出.您可以使用\nin printf()或通过调用来刷新它fflush(stdout).
printf("Whats up\n");
Run Code Online (Sandbox Code Playgroud)
要么
fflush(stdout); // call after the printf
Run Code Online (Sandbox Code Playgroud)
您还可以使用以下命令关闭缓冲setbuf():
setbuf(stdout, 0);
Run Code Online (Sandbox Code Playgroud)