Я хочу использовать этот фрагмент от Mr-Edd's iostreams article для печати std :: clog где-нибудь.redirect std :: cout to custom writer
#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 docs но у меня возникают проблемы с пониманием, что лучший способ сделать это. У меня есть метод, который отображает текст, я просто хочу назвать его любыми данными в ostringstream.
Что является самым простым/лучшим способом получить что-либо, отправленное в std :: clog, перенаправленным на метод по своему выбору? это как указано выше, и заполнить часть while (не уверен, как), или есть лучший способ, скажем, перегружая некоторый оператор «commit» где-нибудь, который вызывает мой метод? Я хочу быстро и легко, я действительно не хочу начинать определять раковины и такие, которые повышают iostreams, как это делает статья, - это что-то вроде моей головы.
вы могли бы быть более ясно, что ваш вопрос? –