Ich möchte dieses Schnipsel von Mr-Edd's iostreams article verwenden, um std :: Clog irgendwo zu drucken.Umleitung std :: cout zu einem benutzerdefinierten Schriftsteller
#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;
}
so, in einem mainloop, werde ich so etwas wie
while (! oss.eof())
{
//add to window text somewhere
}
tue Hier ist die ostringstream docs aber ich habe Probleme, den besten Weg zu verstehen, dies zu tun. Ich habe eine Methode, die den Text anzeigt, ich möchte es nur mit beliebigen Daten im ostringstream aufrufen.
Was ist der einfachste/beste Weg, um etwas an std :: clog gesendet zu einer Methode meiner Wahl weitergeleitet zu bekommen? ist es wie oben, und füllen Sie die while eof part (nicht sicher, wie), oder gibt es einen besseren Weg, sagen Sie, indem Sie irgendwo einen 'commit' Operator überladen, der meine Methode aufruft? Ich interessiere mich für schnell und einfach, ich möchte wirklich nicht beginnen, Spülen und so mit Boost-Iostreams zu definieren, wie der Artikel - das Zeug ist über meinen Kopf.
Sie klarer sein könnte, was Ihre Frage ist? –