所以我的主要问题是如何在asio tcp :: socket或tcp :: iostream之上实现一个结构,它将实现某种输入可搜索的过滤器
用缓冲区来说1kb?
我想使用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;
}
Run Code Online (Sandbox Code Playgroud)
所以,在一个主循环中,我会做类似的事情
while (! oss.eof())
{
//add to window text somewhere
}
Run Code Online (Sandbox Code Playgroud)
这是ostringstream文档,但我无法理解这样做的最佳方法.我有一个显示文本的方法,我只想用ostringstream中的任何数据调用它.
将发送到std :: clog的任何内容重定向到我选择的方法的最简单/最好的方法是什么?它是如上所述,并填写while!eof部分(不确定如何),或者是否有更好的方法,比如通过在调用我的方法的地方重载一些'commit'运算符?我喜欢快速简单,我真的不想开始定义接收器,就像文章那样使用boost iostreams - 这些东西已经超出了我的想象.