2009-12-14 74 views

回答

1

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

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

buffer >> string_buffer.rd_buf(); 

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

0

像这样的东西可能是你追求的:

boost::asio::streambuf myBuffer; 
std::string myString; 

// Convert streambuf to std::string 
std::istream(&myBuffer) >> myString; 
+4

这将只抓取第一组字符。它在读入空格时会停止。 – 2013-04-22 06:37:17

5

我用这种形式给出:

boost::asio::streambuf stream_buf; 
... 
std::string s((std::istreambuf_iterator<char>(&stream_buf)), std::istreambuf_iterator<char>()); 

你可以阅读从其他类型的数据流,F.E.,ifstream的整体数据。

相关问题