C 檔案的開啟與關閉

2021-08-04 20:52:23 字數 1934 閱讀 7023

本節中檔案指的是磁碟檔案。

c++根據檔案(file)內容的資料格式,可分為兩類:

二進位制檔案:訪問的最小資訊單位為位元組(byte)。

c++把每個檔案都看成乙個有序的位元組流,每乙個檔案或者以檔案結束符(end of file marker)結束,或者在特定的位元組號處結束,如下圖所示。

當開啟乙個檔案時,該檔案就和某個流關聯起來了。對檔案進行讀寫實際上受到乙個檔案定位指標(file position pointer)的控制。

輸入流的指標也稱為讀指標,每一次提取操作將從讀指標當前所指位置開始,每次提取操作自動將讀指標向檔案尾移動。輸出流指標也稱寫指標,每一次插入操作將從寫指標當前位置開始,每次插入操作自動將寫指標向檔案尾移動。

檔案使用的5步驟:

①說明乙個檔案流物件,這又被稱為內部檔案:

ifstream ifile;//只輸入用

ofstream ofile;//只輸出用

fstream iofile;//既輸入又輸出用

②使用檔案流物件的成員函式開啟乙個磁碟檔案。這樣在檔案流物件和磁碟檔名之間建立聯絡。檔案流中說明了三個開啟檔案的成員函式。

void ifstream::open(const char*,int=ios::in,int=filebuf::openprot);

voidofstream::open(const char*,int=ios::out,int=filebuf::openprot);

void fstream::open(const char*,int,int=filebuf::openprot);

第乙個引數為要開啟的磁碟檔名。第二個引數為開啟方式,有輸入(in),輸出(out)等,開啟方式在ios基類中定義為列舉型別。第三個引數為指定開啟檔案的保護方式,一般取預設。所以第二步可如下進行:

iofile.open(「myfile.txt」,ios::in|ios::out);

上面三個檔案流類都過載了乙個帶預設引數的建構函式,功能與open函式一樣:

ifstream::ifstream(const char*,int=ios::in,int=filebuf::openprot);

ofstream::ofstream(const char*,int=ios::out,int=filebuf::openprot);

fstream::fstream(const char*,int,int=filebuf::operprot);

所以①和②兩步可合成: fstream iofile(」myfile.txt」,ios::in|ios::out);

③開啟檔案也應該判斷是否成功,若成功,檔案流物件值為非零值,不成功為0(null),檔案流物件值物理上就是指它的位址。因此開啟乙個檔案完整的程式為:

fstream iofile(」myfile.txt」,ios::in|ios::out);

if(!iofile)

{ //「!」為過載的運算子

cout<<」不能開啟檔案:」<<」myfile,txt」<

④使用提取和插入運算子對檔案進行讀寫操作,或使用成員函式進行讀寫,這在下一節中討論。

⑤關閉檔案。三個檔案流類各有乙個關閉檔案的成員函式 :

void ifstream::close();

void ofstream::close();

void fstream::close();

使用很方便,如:

iofile.close();

關閉檔案時,系統把該檔案相關聯的檔案緩衝區中的資料寫到檔案中,保證檔案的完整,收回與該檔案相關的記憶體空間,可供再分配,把磁碟檔名與檔案流物件之間的關聯斷開,可防止誤操作修改了磁碟檔案。如又要對檔案操作必須重新開啟。

關閉檔案並沒有取消檔案流物件,該檔案流物件又可與其他磁碟檔案建立聯絡。檔案流物件在程式結束時,或它的生命期結束時,由析構函式撤消。它同時釋放內部分配的預留緩衝區。

C 流檔案的開啟與關閉

流 檔案是c 提供的一種特殊形式的檔案,也稱緩衝區型檔案。與普通意義檔案不同,它是c 語言提 供給程式設計師和被除訪問裝置之間的一層抽象的內容,是與物理裝置無關的邏輯裝置。在 流 檔案上,用 來寫操作的函式既可用於寫磁碟檔案,也可用來印表機的輸出,而非 流 檔案與具體裝置相關。c 中 有兩種性質的 ...

C 中檔案的開啟與關閉

一 知識講解 1.檔案 2.檔案流 3.檔案流類和檔案流物件 二 實現方法講解 建立乙個輸出檔案流物件 使用成員函式close 首先要懂幾個非常重要的概念 儲存在外部介質上 個人認為就是你的硬碟什麼的 的資料集合,是程式設計中的重要概念。對於普通使用者常用到資料檔案和程式檔案。程式中輸入和輸出的物件...

C語言檔案的開啟與關閉 1

開啟方式 mode 有多種,見下表 開啟方式 說明 r 以唯讀方式開啟檔案,只允許讀取,不允許寫入。該檔案必須存在。r 以讀 寫方式開啟檔案,允許讀取和寫入。該檔案必須存在。rb 以讀 寫方式開啟乙個二進位制檔案,允許讀 寫資料。rt 以讀 寫方式開啟乙個文字檔案,允許讀和寫。w 以只寫方式開啟檔案...