在C语言中,通常当我调用printf时,它会自动刷新stdout.

我如何阻止它这样做,而只是让它在不实际更新终端的情况下将文本放到标准输出中?

这可能是某个问题的重复,但我真的找不到

推荐答案

在看了你 comments 中的附加信息后,我相信它是XY problem分.

您可以将整个文本构建为一个长字符串,然后使用printf一次将其转储到终端,而不是多次使用printf并强制其避免刷新.

您在 comments 中提到整个字符串将是24K长.

你对使用24KB内存的担忧是没有道理的.

  1. 现在的典型系统(包括移动电话)都有GB的内存,使用24KB的内存可以忽略不计.
  2. 作为@Verpous commented,如果您避免刷新,则所有文本无论如何都必须存储在内存中的某个位置.

C++相关问答推荐

编译SDL 2时缺少SDL_ttf

不同到达时间的轮询实现

va_copy的使用是未定义的行为吗?

标准的C17标准是用括号将参数包装在函数声明中吗

使用NameSurname扫描到两个单独的字符串

为什么输出不是从上到下C

如何在C中通过套接字自定义数据类型读取原始变量?

用C宏替换strncMP函数中的参数

Flose()在Docker容器中抛出段错误

错误Cygwin_Except::Open_stackdupfile:正在转储堆栈跟踪是什么?

为什么用非常数指针变量改变常量静态变量时会出现分段错误?

致命错误:ASM/rwan ce.h:没有这样的文件或目录.符号链接还不够

C语言中的外部关键字

For循环不会迭代所有字符串字符吗?(初学者问题)

如何将大写/小写土耳其字母相互转换?

如何读取程序中嵌入的数据S自己的ELF?

传递给函数的 struct 中的数组

clion.我无法理解 Clion 中发生的 scanf 错误

在带中断的循环缓冲区中使用 易失性

将字节/字符序列写入标准输出的最简单形式