下面代码为什么没有任何输出:
#include<cstdio>
#include<unistd.h>
int main(int argc, char **argv){
while(1){
sleep(1);
printf("fffffff");
}
return 0;
}
答:由于标准输出流(stdout)通常是行缓冲的,这意味着输出将在打印完整行之前被缓冲起来。因此,即使程序正在打印 "fffffff",输出可能不会立即出现。为了确保程序的输出被立即显示,您可以在 printf() 函数后添加 fflush(stdout) 来强制刷新输出缓冲区,代码修改如下:
#include <cstdio>
#include <unistd.h>
int main(int argc, char **argv){
while (1){
sleep(1);
printf("fffffff");
fflush(stdout); // 刷新标准输出流缓冲区
}
return 0;
}
标签:输出,stdout,int,printf,缓冲区,include
From: https://www.cnblogs.com/codingbigdog/p/17134629.html