How do I convert a boost::asio::streambuf into a std::string? [duplicate]
I would like to convert a boost::asio::streambuf into a std::string.
How do I do that easily?I use this aproach:
boost::asio::streambuf stream_buf;
...
std::string s( (std::istreambuf_iterator<char>(&stream_buf)), std::istreambuf_iterator<char>() );
you can read whole data from other kind of streams, f.e., ifstream.
Did not try this, but if I read the docs correctly, this class inherits from std::streambuf
, in which case you can do this:
std::istream buffer( my_asio_streambuf_ptr );
std::stringstream string_buffer;
string_buffer >> buffer.rd_buf();
There are many ways to do this, and each has it's pros and cons. If you could explain you problem in more detail, we can offer more specific help.
Something like this is probably what you're after:
boost::asio::streambuf myBuffer;
std::string myString;
// Convert streambuf to std::string
std::istream(&myBuffer) >> myString;
精彩评论