以前學(xué)習(xí)C++的時(shí)候, 總是囫圇吞棗地理解cin, cout等東東, 最近又在復(fù)習(xí)C++, 復(fù)習(xí)到IO類(lèi)這一章節(jié)的時(shí)候, 有點(diǎn)感觸, 所以呢, 打算記錄一下。
俗話說(shuō), 一圖勝過(guò)千言萬(wàn)語(yǔ), 這不是沒(méi)有道理的, 下面, 我們來(lái)看看基本IO類(lèi)的繼承結(jié)構(gòu):

在我們寫(xiě)C++簡(jiǎn)單代碼的時(shí)候, 最喜歡寫(xiě)#include <iostream> , 那么, 這實(shí)際上是在包括IO流的頭文件, 而用using namespace std;則表示用標(biāo)準(zhǔn)空間, 這樣才能用cin,cout, endl等東東啊。
從上圖看, 實(shí)際上可以把IO類(lèi)分為三類(lèi):
1. iostream類(lèi): 負(fù)責(zé)與控制臺(tái)輸入輸出打交道, 這個(gè)我們已經(jīng)很熟悉了。 注意: 實(shí)際具體又可以區(qū)分為:istream和ostream
2. fstream類(lèi): 負(fù)責(zé)與文件輸入輸出打交道, 這個(gè)我們接觸過(guò)。 注意: 實(shí)際具體又可以區(qū)分為:ifstream和ofstream
3. stringstream類(lèi):負(fù)責(zé)與string上的輸入輸出打交道, 這個(gè)我們暫時(shí)還真沒(méi)用過(guò)。 注意: 實(shí)際具體又可以區(qū)分為:istringstream和ostringstream
下面, 我們來(lái)一一學(xué)習(xí)/復(fù)習(xí):
1. IO類(lèi)之iostream
iostream類(lèi)的對(duì)象, 如cin, cout, 會(huì)直接與控制臺(tái)輸入輸出關(guān)聯(lián), 下面我們來(lái)看看最簡(jiǎn)單的程序:
[cpp] view plain copy
%20 %20 很簡(jiǎn)單很好理解吧。
%20 %20 2.%20IO類(lèi)值之fstream
%20 %20 %20fstream的對(duì)象,%20與文件建立關(guān)聯(lián),%20我們已經(jīng)很熟悉了,%20直接看代碼吧:
[cpp] view%20plain copy%20 %20 stringstream的對(duì)象與內(nèi)存中的string對(duì)象建立關(guān)聯(lián),%20往string對(duì)象寫(xiě)東西,%20或者從string對(duì)象讀取東西。
%20 %20 我們先看這樣一個(gè)問(wèn)題,%20假設(shè)test.txt的內(nèi)容為:
lucy%20123
lili%20234%20456
tom%20222%20456%20535
jim%202345%20675%2034%20654
%20 %20 其中每行第一個(gè)單詞是姓名,%20后面的數(shù)字都是他們的銀行卡密碼,%20當(dāng)然啦,%20jim的銀行卡最多,%20有4張,%20現(xiàn)在,%20要實(shí)現(xiàn)如下輸出,%20該怎么做呢?
lucy%20123x
lili%20234x %20 456x
tom%20222x %20 456x %20 535x
jim%202345x %20 675x %20 34x %20 654x
%20 %20 直接看程序吧:
[cpp] view%20plain copy%20 %20 %20 結(jié)果ok.
%20 %20 %20
%20 %20 %20 下面,%20我們來(lái)看看如何利用istringstream實(shí)現(xiàn)字符串向數(shù)值的轉(zhuǎn)化:
[cpp] view%20plain copy%20 %20 %20當(dāng)然,%20我們也可以把數(shù)字格式化為字符串,%20如下(下面這個(gè)程序有問(wèn)題):
[cpp] view%20plain copy新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注