1. 程式人生 > >C++ 檔案讀寫函式之——fopen、fread和fwrite

C++ 檔案讀寫函式之——fopen、fread和fwrite

(1)fopen()函式:開啟檔案
包含標頭檔案:

 #include<stdio.h>

格式:FILE * fopen(const char * path,const char * mode)
引數: path:需要開啟的檔案路徑
mode:檔案開啟方式

mode function
r 以只讀方式開啟檔案,該檔案必須存在。
r+ 以可讀寫方式開啟檔案,該檔案必須存在。
rb+ 讀寫開啟一個二進位制檔案,允許讀資料。
rt+ 讀寫開啟一個文字檔案,允許讀和寫。
w 開啟只寫檔案,若檔案存在則檔案長度清為0,即該檔案內容會消失。若檔案不存在則建立該檔案。
w+ 開啟可讀寫檔案,若檔案存在則檔案長度清為零,即該檔案內容會消失。若檔案不存在則建立該檔案。
a 以附加的方式開啟只寫檔案。若檔案不存在,則會建立該檔案,如果檔案存在,寫入的資料會被加到檔案尾,即檔案原先的內容會被保留。(EOF符保留)
a+ 以附加方式開啟可讀寫的檔案。若檔案不存在,則會建立該檔案,如果檔案存在,寫入的資料會被加到檔案尾後,即檔案原先的內容會被保留。 (原來的EOF符不保留)
wb 只寫開啟或新建一個二進位制檔案;只允許寫資料。
wb+ 讀寫開啟或建立一個二進位制檔案,允許讀和寫。
wt+ 讀寫開啟或著建立一個文字檔案;允許讀寫。
at+ 讀寫開啟一個文字檔案,允許讀或在文字末追加資料
ab+ 讀寫開啟一個二進位制檔案,允許讀或在檔案末追加資料。

現在對上面的檔案開啟方式做個總結:

檔案使用方式由r,w,a,t,b,+六個字元拼成,各字元的含義是:

    r(read): 讀
    w(write): 寫
    a(append): 追加
    t(text): 文字檔案,可省略不寫
    b(banary): 二進位制檔案
    +: 讀和寫

返回值 : 如果檔案順利開啟,返回指向該流的檔案指標。如果檔案開啟失敗則返回NULL,並把錯誤程式碼存在error中。

一般而言,開啟檔案後會作一些檔案讀取或寫入的動作,若開啟檔案失敗,接下來的讀寫動作也無法順利進行,所以一般在fopen()後作錯誤判斷及處理。
(2)fread()函式和fwrite()函式:(可以用來實現對資料塊的操作)

// 讀取檔案塊資料

size_t fread(void *buffer, size_t size, size_t count, FILE *file);

// 寫入檔案塊資料

size_t fwrite(const void *buffer, size_t size, size_t count, FILE *file);

fread引數說明:buffer是讀取資料後存放地址,size是的塊長度,count是塊的數量,實際讀取長度為size*count,返回值為塊成功讀取塊的count數量。

fwrite引數說明:buffer是寫入資料後存放地址,size是的塊長度,count是塊的數量,實際讀取長度為size*count,返回值為塊成功寫入快的count數量。