printf()函数在time()函数之后执行?C/C++



我编写了以下程序:

#include <cstdio>
#include <ctime>
int main()
{
time_t t;
int d;
printf("nHello 1");    
time(&t);           
d=t;
while (t-d<3) /*wait 3 seconds*/
{
time(&t);
}
printf("nHello 2");
time(&t);
d=t;
while (t-d<3)  /*wait 3 seconds*/
{
time(&t);
}
printf("nHello 3");
return 0;
}

在构建程序之后,我运行它;你好1";。

为什么它是先写后执行的?

在某些操作系统上,输出缓冲区stdout通常需要为";"冲洗";以便使您在那里打印的内容显示在屏幕上。CCD_ 2充当";"冲洗";这就解释了这种行为。

您可以通过在每个printf之后添加一个fflush(stdout);调用来解决此问题。这将强制屏幕更新。或者,将n移动到每行的末尾,而不是开始处。

基本上,您需要刷新缓冲区。所以最简单的事情就是从printf("nHello 1");转移到printf("Hello 1n");

试试这个https://onlinegdb.com/u5L2xtwgf

最新更新