Voglio utilizzare questo snippet da Mr-Edd's iostreams article per stampare std :: clog da qualche parte.reindirizza std :: cout a un writer personalizzato
#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;
}
così, in un ciclo principale, farò qualcosa di simile
while (! oss.eof())
{
//add to window text somewhere
}
Ecco il ostringstream docs ma sto avendo difficoltà a capire il modo migliore per farlo. Ho un metodo che visualizza il testo, voglio solo chiamarlo con tutti i dati nel stringstream.
Qual è il modo più semplice/migliore per inviare qualcosa a std: clog reindirizzato a un metodo di mia scelta? è come sopra, e riempi la parte! eof (non so come), o c'è un modo migliore, ad esempio sovraccaricando qualche operatore 'commit' da qualche parte che chiama il mio metodo? Sto cercando di farlo in modo facile e veloce, non voglio davvero iniziare a definire i lavandini e così via con gli iostreams di boost come fa l'articolo - quella roba mi è passata per la testa.
si potrebbe essere più chiari su ciò che la tua domanda è? –