C++ 檔案讀寫函式之——fopen、fread和fwrite
阿新 • • 發佈:2019-01-03
(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數量。