簡體   English   中英

用於寫入文件的stringstream或ostringstream?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM