+
80
-

c++中cout输出不显示怎么办?

c++

c++中cout输出不显示怎么办?

在linux命令行下可以输出,但是第三方程序调用的时候就不输出了,请问是什么原因?

网友回复

+
0
-

这是由于cout的缓存造成了,有两种办法

第一、强制缓存输出

std::cout << "test" << std::flush; // std::flush is in <iostream>
或
std::cout << "test";
std::cout.flush(); // explicitly flush here
或
std::cout << "test" << std::endl; // endl sends newline char(s) and then flushes

第二种、不缓存

std::setvbuf(stdout, NULL, _IONBF, 0);

或运行c++程序的时候加入以下参数

stdbuf -o 0 ./yourprogram --yourargs

我知道答案,我要回答