#include <stdlib.h>
int main()
{
printf("\nHello");
sleep(5);
printf("\nLinux");
}
在我的期望中,它应该是:
PRINT Hello --- WAIT 5 SECS ---> PRINT Linux
但实际上它会是这样的:
WAIT 5 SECS --> PRINT Hello --> PRINT Linux
为什么?如何让我的程序成为第一个(按照我的期望)?
为什么我的代码可以在Win32控制台上运行?
答案 0 :(得分:4)
您的流是行缓冲的,因为您没有使用\n
结束字符串,请使用fflush
将其刷新。
将您的计划更改为:
int main()
{
printf("\nHello");
fflush(stdout);
sleep(5);
printf("\nLinux");
}
答案 1 :(得分:1)
输出被缓冲,直到换行才打印。
尝试:
printf("\nHello\n");
sleep(5);
printf("Linux");