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