[英]stringstream or ostringstream for writing in file?
要將數據從ostringstream
寫入ofstream
,我必須編寫如下內容:
std::ostringstream ss;
myFile<<ss.str();
另一方面,如果我使用stringstream
,則可以直接訪問緩沖區:
std::stringstream ss;
myFile<<ss.rdbuf();
問題是ostringstream::str()
會復制一個字符串,這很不好,因為在我的程序中有非常大的字符串,所以stringstream
應該更好,因為我可以直接訪問用於讀取的緩沖區。 這里的人說,如果僅處理輸出操作,則應在stringstream
使用ostringstream
。 我不能簡單地使用字符串,因為我要插入各種類型的數據。 那么有人可以給我一些如何處理的建議嗎?
這里的人說如果只處理輸出操作,就應該在字符串流上使用ostringstream
使用更具體的ostringstream
主要原因是要使您的意圖明確,避免出錯。 在這種情況下,需要使用stringstream
來防止復制可能較大的字符串,因此請小心使用。
ostringstream
適用於數據進入流而永不流出的情況。 (當然,除了您實際想要的std::string
對象。)
stringstream
適用於同時發生讀寫的用途。 << rdbuf()
是一種從流中讀取數據的方法,因此stringstream
是完全合適的。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.