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

圖2-9 文件讀寫