7

我想将 boost::asio::streambuf 转换为 std::string。
我如何轻松做到这一点?

4

3 回答 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 回答