0

C++で記述されたコンソールアプリケーションがあります。stdoutそれから文字列/パイプ/メモリ配列にすべての出力を収集する方法はありますか?

PS。収集する必要のあるコンソールアプリ内からこれを行う必要がありますstdout。または、言い換えれば、それはそれ自体から収集しています。

4

1 に答える 1

3

はい。にリダイレクトするにはstringstd::stringstream

std::stringstream buffer;
std::streambuf * old = std::cout.rdbuf(buffer.rdbuf());

次に、次の場合:

std::cout << "Example output" << std::endl;
std::string text = buffer.str();

textが含まれていることがわかります"Example output\n"

于 2013-03-14T20:37:16.103 に答える