首页 > 解决方案 > 为什么我在使用睡眠功能时需要在 c 中使用“\n”?

问题描述

我的代码:

#include <stdio.h>
#include <unistd.h>

int main(){
    printf("I sleep\n");
    sleep(3);
    printf("\033[H\033[J");
    return 0;
}

如果我不在 printf 函数中写“\n”,则不会显示“I sleep”,直到 sleep(3) 完成。

有人可以解释吗?谢谢!

标签: cprintfsleepunistd.h

解决方案


标准输出流,当不输出到文件或设备时,在大多数类 UNIX 系统上默认是行缓冲的。

这意味着在遇到换行符之前,通常不会实际打印发送到那里的文本。


推荐阅读