如何爲ostringstream對象追加數據? Assumingly:設置ostringstream自動追加
ostringstream oss;
oss << '0x11';
如何設置執行自動從最後已知的元素oss << 0x22
?我通讀了我需要設置一些標誌,但我該怎麼做?
編輯:對這個問題非常含糊不清。那些咖啡正在磨損。從我上面的問題擴展:
ostringstream oss(osstringstream::app)
它設置爲每次追加?我的目標是創建一個字符串。
如何爲ostringstream對象追加數據? Assumingly:設置ostringstream自動追加
ostringstream oss;
oss << '0x11';
如何設置執行自動從最後已知的元素oss << 0x22
?我通讀了我需要設置一些標誌,但我該怎麼做?
編輯:對這個問題非常含糊不清。那些咖啡正在磨損。從我上面的問題擴展:
ostringstream oss(osstringstream::app)
它設置爲每次追加?我的目標是創建一個字符串。
當傳遞給 ostringstream
構造函數時,沒有指定app
標誌的作用。此標誌僅與 ofstream
有關。另一方面,ostringstream
是流, 並且因此,如果在此期間沒有發現搜索,則在先前的插入數據之後總是插入數據。畢竟,這是輸出流的定義。
這就是ate
和app
之間的區別作爲開放模式。 ate
位置在打開後的末尾,然後單獨離開寫入位置(所以如果你需要它,你可以在任何地方寫入),app
確保所有的寫入都在流結束時完成。
編輯:實際上,stringstream的行爲不同,所以不要依賴它。
除'ate'和'ape'只與'filebuf'和'[oi] fstream'有關外。它們是'open'的參數,並且沒有'stringbuf'的定義。 (形式上,我認爲傳遞它們將是未定義的行爲,因爲標準沒有爲它們指定語義。) – 2011-05-18 12:48:01
@詹姆斯,你有參考嗎?這是我的,但沒有發現任何說明,吃和猿只與filebuf有關。它們被用於open()的描述中,以便爲fopen提供等價的參數,但是它們在ios_base中的描述不需要針對字符串流進行擴展,而不再是對seekdir或iostate的描述。 – AProgrammer 2011-05-18 13:02:13
它們的完整語義在'filebuf'中描述; 'stringbuf'只描述'in'和'out'的效果。但是你可能有一個觀點:'openmode'描述中的表格確實總結了一個語義。但是,如果這適用,'trunc'對'streambuf'意味着什麼?或'二進制'?我認爲這個問題對我來說是足夠開放的,可以提交一份DR。 – 2011-05-18 13:18:03
當您在第一個示例中創建stringstream
時,它將默認附加。
我不明白。流總是附加。你想達到什麼目的? – 2011-05-18 11:24:25
它與C-tag有什麼關係? – cpx 2011-05-18 11:31:23
將標籤更改爲「ostringstream」與c無關c – mkaes 2011-05-18 11:33:19