2013-10-30 75 views
1

我嘗試製作一個壓縮/解壓縮模塊,然後使用istringstream進行壓縮,並使用ostringstream進行解壓縮。從ostringstream傳遞到istringstream的技巧

我的問題是,在用壓縮數據填充我的istringstream之後,我無法將此流轉換爲ostringstream。我嘗試:

iss.rdbuf(oss.rdbuf());

作爲輸入和輸出類型匹配,但它不起作用。

你有什麼想法嗎?

提前致謝。

+0

您可能只想使用stringstream而不是ostringstream和istringstream,因爲您可以從中讀取和寫入:http://www.cplusplus.com/reference/sstream/basic_stringstream/ – AndyG

+0

請注意,這是非常危險的,因爲'iss'上的任何輸入操作都會影響'oss'的緩衝區。 ''反映'oss'的'iss'中找不到任何更改。這只是其他潛在缺陷之一。 – 0x499602D2

回答

0

stringstream::rdbuf沒有帶過參數的重載。它,然而,繼承基類的版本,確實有此屬性:

iss.basic_ios<char>::rdbuf(oss.rdbuf()); 

,你不能原先使用它事實上是因爲派生類版本隱藏它。