c语言中printf不输出任何东西?,缓冲区未满不输出任何东西

下面代码为什么没有任何输出:

#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;
}
posted @ 2023-02-19 13:32  好人~  阅读(848)  评论(0编辑  收藏  举报