我有这个程序应该禁用缓冲std::cout
。我想打印出我写入输出设备的内容,但是当我打印时str
什么都没有出来。
#include <iostream>
#include <sstream>
#include <string>
int main()
{
std::cout.rdbuf()->pubsetbuf(0, 0);
std::cout.unsetf(std::ios::unitbuf);
std::cout << "Hello, World\n";
std::stringstream ss;
ss << std::cout.rdbuf();
std::string str{ss.str()};
std::cout << str; // nothing
// str.size() == 0
}