0、C++的輸入輸出分為三種:
(1)基于控制臺的I/O
(2)基于文件的I/O
(3)基于字符串的I/O
1、頭文件
[cpp] view plaincopyprint?
2、作用
istringstream類用于執行C++風格的字符串流的輸入操作。
ostringstream類用于執行C++風格的字符串流的輸出操作。
strstream類同時可以支持C++風格的串流的輸入輸出操作。
3、具體分析
istringstream類
描述:從流中提取數據,支持 >> 操作
這里字符串可以包括多個單詞,單詞之間使用空格分開
初始化:使用字符串進行初始化
使用:我們可以使用分解點獲取不同的數據,完成 字符串 到 其他類型 的轉換
常用成員函數:
舉例:把字符串類型的數據轉換為其他類型
舉例2:把一行字符串放入流中,單詞以空格隔開。之后把一個個單詞從流中依次讀取到字符串
輸入:123 34 45
輸出:
123 換行 34 換行 45
ostringstream類
描述:把其他類型的數據寫入流(往流中寫入數據),支持<<操作
初始化:使用字符串進行初始化
舉例:
stringstream類
描述:是對istringstream和ostringstream類的綜合,支持<<, >>操作符,可以進行字符串到其它類型的快速轉換
初始化:使用字符串進行初始化
作用:
1、stringstream通常是用來做數據轉換的
2、將文件的所有數據一次性讀入內存
舉例1:基本數據類型變字符串
}
舉例2:字符串變基本數據類型
注意:
由于stringstream構造函數會特別消耗內存,似乎不打算主動釋放內存(或許是為了提高效率),但如果你要在程序中用同一個流,反復讀寫大量的數據,將會造成大量的內存消耗,因些這時候,需要適時地清除一下緩沖 (用 stream.str("") )。
另外不要企圖用 stream.str().resize(0),或 stream.str().clear() 來清除緩沖,使用它們似乎可以讓stringstream的內存消耗不要增長得那么快,但仍然不能達到清除stringstream緩沖的效果,內存的消耗還在緩慢的增長!,至于stream.flush(),則根本就起不到任何作用。