如何将boost :: asio :: streambuf转换为std :: string?

Mat*_*att 6 c++ boost-asio

我想将boost :: asio :: streambuf转换为std :: string.
我怎么这么容易?

小智 6

我用这个方法:

boost::asio::streambuf stream_buf;
...
std::string s( (std::istreambuf_iterator<char>(&stream_buf)), std::istreambuf_iterator<char>() );
Run Code Online (Sandbox Code Playgroud)

你可以从其他类型的流,fe,ifstream读取整个数据.


Bjö*_*lex 2

没有尝试这个,但是如果我正确地阅读了文档,这个类继承自std::streambuf,在这种情况下你可以这样做:

std::istream buffer( my_asio_streambuf_ptr );
std::stringstream string_buffer;

string_buffer >> buffer.rd_buf();
Run Code Online (Sandbox Code Playgroud)

有很多方法可以做到这一点,每种方法都有其优点和缺点。如果您能更详细地解释您的问题,我们可以提供更具体的帮助。