Mr-Eddのiostreams記事のこのスニペットを使用して、 std::clogをどこかに印刷したいと思います。
#include <iostream>
#include <iomanip>
#include <string>
#include <sstream>
int main()
{
std::ostringstream oss;
// Make clog use the buffer from oss
std::streambuf *former_buff =
std::clog.rdbuf(oss.rdbuf());
std::clog << "This will appear in oss!" << std::flush;
std::cout << oss.str() << '\\n';
// Give clog back its previous buffer
std::clog.rdbuf(former_buff);
return 0;
}
だから、メインループで、私は次のようなことをします
while (! oss.eof())
{
//add to window text somewhere
}
これがostringstreamのドキュメントですが、これを行うための最良の方法を理解するのに苦労しています。テキストを表示するメソッドがあります。ostringstream内の任意のデータを使用して呼び出したいだけです。
std :: clogに送信されたものを、選択したメソッドにリダイレクトするための最も簡単で最良の方法は何ですか?上記のように、while!eofの部分に入力しますか(方法はわかりません)、それとも、メソッドを呼び出す「commit」演算子をどこかにオーバーロードするなど、より良い方法がありますか?私はすばやく簡単なことを望んでいます。記事のようにブーストIOストリームを使用してシンクなどを定義し始めたくありません。