C++中的文件輸入/輸出(1)
原作:Ilia Yordanov, loobian@cpp-home.com
簡(jiǎn)介
本教程將以C++最基本的文件I/O(輸出/輸出)開(kāi)始。此后,我將從更深入的方面,為你展示一些技巧,并分析給出一些有用的函數。
你需要對C++有一個(gè)較好的理解,否則這個(gè)教程于你而言將是陌生而毫無(wú)用處。
你的第一個(gè)程序
首先我將給出一段代碼,接著(zhù)再逐行進(jìn)行解釋。我們的第一個(gè)程序將建立一個(gè)文件,并寫(xiě)入一些字符:
#include <fstream.h>
void main() // 程序從這里開(kāi)始運行
{
ofstream SaveFile(“cpp-home.txt”);
SaveFile << “Hello World, from www.cpp-home.com and Loobian!”;
SaveFile.close();
}
僅僅如此嗎?沒(méi)錯!這個(gè)程序將在當前運行目錄下建立一個(gè)名為cpp-home.txt的文件,并向它寫(xiě)入“Hello World, from www.cpp-home.com and Loobian!”。
下面給出各行的含義:
#include <fstream.h> —— 你需要包含此文件以使用C++的文件輸入/輸出函數。注意:一旦包含了這個(gè)文件,你不再需要(為了使用cout/cin)包含iostream.h,因為fstream.h已經(jīng)自動(dòng)包含了它。
在這個(gè)頭文件中聲明了若干個(gè)類(lèi),包括ifstream,ofstream及fstream,它們都繼承自istream和ostream類(lèi)。
ofstream SaveFile(“cpp-home.txt”);
1)ofstream即“output file stream(輸出文件流)”。它將建立一個(gè)句柄(handle),以便我們以后能以一個(gè)文件流的形式寫(xiě)入文件。
2)SaveFile —— 這是文件句柄的名字,當然,你還可以換用任何一個(gè)你想要的名稱(chēng)。
3)(“cpp-home.txt”); —— 打開(kāi)名為cpp-home.txt的文件。如果程序運行的當前目錄已經(jīng)存在這樣一個(gè)文件,則它將被替換掉;萬(wàn)一不存在,程序也會(huì )為你創(chuàng )建一個(gè)為文件,你不必為此而擔心。
現在,讓我們稍微深入一點(diǎn)點(diǎn)。首先,我要指出的是:ofstream是一個(gè)類(lèi)。因此ofstream SaveFile(“cpp-home.txt”);這一語(yǔ)句將創(chuàng )建一個(gè)該類(lèi)的對象;而我們在括號中所傳遞的參數實(shí)際上將傳給構造函數:在這里我們將我們要建立的文件的名稱(chēng)作為實(shí)際參數傳遞給了該類(lèi)的構造函數。當然,我們還可以傳遞其它的一些信息,不過(guò)我以后再對其進(jìn)行講解。
SaveFile << “Hello World, from www.cpp-home.com and Loobian!”; —— “<<”看起來(lái)是不是很親切?不錯,想必你已經(jīng)在cout << 中見(jiàn)到過(guò)。這是一個(gè)預定義好的運算符。不管怎么說(shuō),這行語(yǔ)句所做的,是將上面的那段文本寫(xiě)入文件。正如前面所提到的,SaveFile是一個(gè)文件句柄,它關(guān)聯(lián)一個(gè)打開(kāi)的流式文件。所以,我們只須輸入句柄名,再跟著(zhù)輸入“<<”,然后接著(zhù)寫(xiě)下一串用引號括起來(lái)的文本,就可以實(shí)現對文件的寫(xiě)入。如果我們想寫(xiě)入的是某個(gè)變量的值而不是帶引號的文本,也只須像通常使用cout << 一樣將變量傳遞給句柄對象,像這樣:
SaveFile << variablename;
就可以了!
SaveFile.close(); —— 既然我們打開(kāi)了一個(gè)流文件,那么當我們用完它之后,就必須關(guān)閉它。SaveFile是ofstream類(lèi)的一個(gè)對象,而該類(lèi)(ofstream)有一個(gè)用于關(guān)閉文件的成員函數,即close() 函數。因此,我們只要依次輸入文件句柄名,點(diǎn)號和close(),就可以關(guān)閉該文件!
注意:一旦你關(guān)閉文件,在你重新打開(kāi)它以前,就再不能對它進(jìn)行訪(fǎng)問(wèn)。
以上就是一個(gè)可以寫(xiě)文件的最簡(jiǎn)單程序。的確很容易!不過(guò),正如你即將在以后部分的教程中所看到的,還有更多的東西要學(xué)呢!
聯(lián)系客服