2.2.3 讀寫文件
在這段程序中,我們首先創(chuàng)建了一個(gè)輸入文件流ifstream的對(duì)象fin,并利用它的構(gòu)造函數(shù)將其連接到一個(gè)文本文件Date.txt。所謂構(gòu)造函數(shù),就是這個(gè)對(duì)象創(chuàng)建的時(shí)候所執(zhí)行的函數(shù)。這里,我們使用“Date.txt”作為參數(shù)來調(diào)用這個(gè)構(gòu)造函數(shù),實(shí)際上就是使用這個(gè)文件創(chuàng)建fin對(duì)象。除此之外,我們還可以使用fin所提供的open()函數(shù)來打開一個(gè)文件。當(dāng)我們利用fin成功打開一個(gè)文件之后,就可以利用提取符“>>”從fin中提取各種數(shù)據(jù)。“>>”會(huì)以空格為分隔符逐個(gè)從文件中讀取數(shù)據(jù)并將其保存到相應(yīng)的數(shù)據(jù)變量中。例如,如果文件中的內(nèi)容如下:
用戶輸入的當(dāng)前日期是:
1983 7 3
默認(rèn)情況下,fin總是從文件的開始部分進(jìn)行讀取的,為了直接讀取第二行的內(nèi)容,我們使用“fin.ignore(256,'\n');”忽略了第一行的內(nèi)容,將讀取位置跳轉(zhuǎn)到第二行。然后,通過提取符“>>”,我們將第二行用空格分割的三個(gè)數(shù)據(jù)分別提取并保存到了三個(gè)變量中。
同樣,為了將數(shù)據(jù)寫入文件,我們需要?jiǎng)?chuàng)建一個(gè)輸出文件流ofstream的對(duì)象fout,然后通過它的構(gòu)造函數(shù)或者是open()函數(shù)來打開一個(gè)文件,將這個(gè)文件和fout對(duì)象連接起來,然后通過插入符“<<”將數(shù)據(jù)插入到fout對(duì)象,也就實(shí)現(xiàn)了將數(shù)據(jù)寫入到它所關(guān)聯(lián)的文件中的目的。整個(gè)過程如下圖2-9所示:

圖2-9 文件讀寫