2009-12-14 112 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的整體數據。

相關問題