在一次编写用QProcess接收程序运行结果的代码中,发现可执行程序使用print cout等打印运行结果,如果不加换行符就打印不出结果后来查阅网上资料得知,换行符的作用就是刷新缓冲区,因此添加缓冲区刷新代码即可或者直接关闭缓冲区.
刷新方式:
fflush(stdout)
setbuf(stdout, NULL);
setvbuf(stdout, (char *)NULL, _IONBF, 0);//直接关闭缓冲区
关于输入输出缓冲区的问题,有如下参考链接:
在一次编写用QProcess接收程序运行结果的代码中,发现可执行程序使用print cout等打印运行结果,如果不加换行符就打印不出结果后来查阅网上资料得知,换行符的作用就是刷新缓冲区,因此添加缓冲区刷新代码即可或者直接关闭缓冲区.
刷新方式:
fflush(stdout)
setbuf(stdout, NULL);
setvbuf(stdout, (char *)NULL, _IONBF, 0);//直接关闭缓冲区
关于输入输出缓冲区的问题,有如下参考链接: