как я могу получить данные, которые будут отправлены на стандартный вывод в 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();
И это не работает. «Hello» по-прежнему выводится до «STD data:», а buffer.get()
возвращает «-1». Что не так?