c/c++ 标准输入输出缓冲区刷新

在一次编写用QProcess接收程序运行结果的代码中,发现可执行程序使用print cout等打印运行结果,如果不加换行符就打印不出结果后来查阅网上资料得知,换行符的作用就是刷新缓冲区,因此添加缓冲区刷新代码即可或者直接关闭缓冲区.

刷新方式:

fflush(stdout)
setbuf(stdout, NULL);
setvbuf(stdout, (char *)NULL, _IONBF, 0);//直接关闭缓冲区

关于输入输出缓冲区的问题,有如下参考链接:

  • C++输入输出缓冲区的刷新问题
  • Linux 中C语言如何清空标准输入流
  • Linux c学习–从标准输入输出看流和缓冲区
  • 从QProcess说开来(一)

你可能感兴趣的:(Linux,C++,C)