我想将 boost::asio::streambuf 转换为 std::string。
我如何轻松做到这一点?
问问题
21238 次
3 回答
9
我使用这种方法:
boost::asio::streambuf stream_buf;
...
std::string s( (std::istreambuf_iterator<char>(&stream_buf)), std::istreambuf_iterator<char>() );
您可以从其他类型的流、fe、ifstream 中读取全部数据。
于 2014-08-26T13:46:53.737 回答
2
没有尝试这个,但如果我正确阅读了文档,这个类继承自std::streambuf
,在这种情况下你可以这样做:
std::istream buffer( my_asio_streambuf_ptr );
std::stringstream string_buffer;
string_buffer >> buffer.rd_buf();
有很多方法可以做到这一点,每种方法都有其优点和缺点。如果您能更详细地解释您的问题,我们可以提供更具体的帮助。
于 2009-12-14T09:34:23.283 回答
-1
像这样的东西可能是你所追求的:
boost::asio::streambuf myBuffer;
std::string myString;
// Convert streambuf to std::string
std::istream(&myBuffer) >> myString;
于 2010-03-30T16:42:43.617 回答