Я хочу использовать этот фрагмент из статьи мистера Эдда 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 , но у меня возникают проблемы с пониманием лучшего способа сделать это. У меня есть метод, который отображает текст, я просто хочу вызвать его с любыми данными в потоке ostring.
Какой самый простой / лучший способ получить что-либо, отправленное на std :: clog, перенаправленное на метод по моему выбору? это как указано выше, и заполните часть while! eof (не знаю, как), или есть лучший способ, скажем, перегрузить некоторый оператор 'commit' где-нибудь, который вызывает мой метод? Я стремлюсь к быстрому и легкому, я действительно не хочу начинать определять раковины и такие с ускоренными iostreams, как это делает статья - эти вещи у меня над головой.