如何捕获将以c+;格式发送到标准输出的数据+;? 我如何捕获将在C++中发送到STDUT的数据?

如何捕获将以c+;格式发送到标准输出的数据+;? 我如何捕获将在C++中发送到STDUT的数据?,c++,stream,stdout,C++,Stream,Stdout,我在这里发现: // This can be an ofstream as well or any other ostream std::stringstream buffer; // Save cout's buffer here std::streambuf *sbuf = std::cout.rdbuf(); // Redirect cout to our stringstream buffer or any other ostream std::c

我在这里发现:

   // This can be an ofstream as well or any other ostream
   std::stringstream buffer;

   // Save cout's buffer here
   std::streambuf *sbuf = std::cout.rdbuf();

   // Redirect cout to our stringstream buffer or any other ostream
   std::cout.rdbuf(buffer.rdbuf());

   std::cout << "Hello!";

   // When done redirect cout to its old self
   std::cout.rdbuf(sbuf);

   std::cout << "STD data: \n";
   std::cout << buffer.get();
//这也可以是一个流,也可以是任何其他ostream
std::stringstream缓冲区;
//在这里保存库特的缓冲区
std::streambuf*sbuf=std::cout.rdbuf();
//将cout重定向到我们的stringstream缓冲区或任何其他ostream
std::cout.rdbuf(buffer.rdbuf());
std::cout写入:

std::cout
  std::cout << buffer.str(); //not buffer.get();