本文通過一個簡短的程序說明了在C++中進(jìn)行文件的輸入與輸出的方法。
下面首先給出一段代碼,實現(xiàn)在當(dāng)前運(yùn)行目錄中建立一個文件,并寫入一些信息:
#include <fstream.h>
void main() // C++程序從主函數(shù)main開始運(yùn)行
{
ofstream SaveFile(“VeVb.txt”);
SaveFile << “Hello World, articles from www.49028c.com, You will like it!”;
SaveFile.close();
}
就這么短的代碼,實現(xiàn)了在運(yùn)行目錄下建立一個名為VeVb.txt的文件,并向它寫入“Hello World, articles from www.49028c.com, You will like it!”。
下面將對程序進(jìn)行詳細(xì)的解釋:
#include <fstream.h> —— 你需要包含此文件以使用C++的文件輸入/輸出函數(shù)。注意:一旦包含了這個文件,你不再需要(為了使用cout/cin)包含iostream.h,因為fstream.h已經(jīng)自動包含了它。
在這個頭文件中聲明了若干個類,包括ifstream,ofstream及fstream,它們都繼承自istream和ostream類。
ofstream SaveFile(“VeVb.txt”);
1)ofstream即“output file stream(輸出文件流)”。它將建立一個句柄(handle),以便我們以后能以一個文件流的形式寫入文件。
2)SaveFile —— 這是文件句柄的名字,當(dāng)然,你還可以換用任何一個你想要的名稱。
3)(“cpp-home.txt”); —— 打開名為cpp-home.txt的文件。如果程序運(yùn)行的當(dāng)前目錄已經(jīng)存在這樣一個文件,則它將被替換掉;萬一不存在,程序也會為你創(chuàng)建一個為文件,你不必為此而擔(dān)心。
現(xiàn)在,讓我們稍微深入一點點。首先,我要指出的是:ofstream是一個類。因此ofstream SaveFile(“cpp-home.txt”);這一語句將創(chuàng)建一個該類的對象;而我們在括號中所傳遞的參數(shù)實際上將傳給構(gòu)造函數(shù):在這里我們將我們要建立的文件的名稱作為實際參數(shù)傳遞給了該類的構(gòu)造函數(shù)。當(dāng)然,我們還可以傳遞其它的一些信息,不過我以后再對其進(jìn)行講解。
SaveFile << “Hello World, articles from www.49028c.com, You will like it!”; —— “<<”看起來是不是很親切?不錯,想必你已經(jīng)在cout << 中見到過。這是一個預(yù)定義好的運(yùn)算符。不管怎么說,這行語句所做的,是將上面的那段文本寫入文件。正如前面所提到的,SaveFile是一個文件句柄,它關(guān)聯(lián)一個打開的流式文件。所以,我們只須輸入句柄名,再跟著輸入“<<”,然后接著寫下一串用引號括起來的文本,就可以實現(xiàn)對文件的寫入。如果我們想寫入的是某個變量的值而不是帶引號的文本,也只須像通常使用cout << 一樣將變量傳遞給句柄對象,像這樣:
SaveFile << variablename;
SaveFile.close(); —— 既然我們打開了一個流文件,那么當(dāng)我們用完它之后,就必須關(guān)閉它。SaveFile是ofstream類的一個對象,而該類(ofstream)有一個用于關(guān)閉文件的成員函數(shù),即close() 函數(shù)。因此,我們只要依次輸入文件句柄名,點號和close(),就可以關(guān)閉該文件!
注意:一旦你關(guān)閉文件,在你重新打開它以前,就再不能對它進(jìn)行訪問。
新聞熱點
疑難解答