1. 程式人生 > >C語言中fopen函式用法詳解

C語言中fopen函式用法詳解

fopen函式用來開啟一個檔案,其呼叫的一般形式為:
檔案指標名=fopen(檔名,使用檔案方式);

其中,
檔案指標名”必須是被說明為FILE 型別的指標變數;
檔名”被開啟檔案的檔名,是字串常量或字串陣列,要求是全路徑;
使用檔案方式”是指檔案的型別和操作要求。

檔案使用方式意義:
“rt”
只讀開啟一個文字檔案,只允許讀資料
“wt”
只寫開啟或建立一個文字檔案,只允許寫資料
“at”
追加開啟一個文字檔案,並在檔案末尾寫資料
“rb”
只讀開啟一個二進位制檔案,只允許讀資料
“wb”
只寫開啟或建立一個二進位制檔案,只允許寫資料
“ab”
追加開啟一個二進位制檔案,並在檔案末尾寫資料
“rt+”
讀寫開啟一個文字檔案,允許讀和寫
“wt+”


讀寫開啟或建立一個文字檔案,允許讀寫
“at+”

讀寫開啟一個文字檔案,允許讀,或在檔案末追加資料
“rb+”
讀寫開啟一個二進位制檔案,允許讀和寫
“wb+”
讀寫開啟或建立一個二進位制檔案,允許讀和寫
“ab+”
讀寫開啟一個二進位制檔案,允許讀,或在檔案末追加資料
對於檔案使用方式有以下幾點說明:
1) 檔案使用方式由r,w,a,t,b,+六個字元拼成,各字元的含義是:
r(read): 讀
w(write): 寫
a(append): 追加
t(text): 文字檔案,可省略不寫
b(banary): 二進位制檔案
+: 讀和寫
2) 凡用“r”開啟一個檔案時,該檔案必須已經存在,且只能從該檔案讀出。
3) 用“w”開啟的檔案只能向該檔案寫入。若開啟的檔案不存在,則以指定的檔名建立該檔案,若開啟的檔案已經存在,則將該檔案刪除,重新建立一個新檔案。

4) 若要向一個已存在的檔案追加新的資訊,只能用"a"方式開啟檔案。但此時該檔案必須是存在的,否則將會出錯。
5) 在開啟一個檔案時,如果出錯,fopen將返回一個空指標值NULL。在程式中可以用這一資訊來判別是否完成開啟檔案的工作,並作相應的處理。因此常用以下程式段開啟檔案:
6) if((fp=fopen("c://hzk16","rb")==NULL)
{
printf("/nerror on open c://hzk16 file!");
getch();
exit(1);
}
這段程式的意義是,如果返回的指標為空,表示不能開啟C盤根目錄下的hzk16檔案,則給出提示資訊“error on open c:/ hzk16 file!”,下一行getch()的功能是從鍵盤輸入一個字元,但不在螢幕上顯示。在這裡,該行的作用是等待,只有當用戶從鍵盤敲任一鍵時,程式才繼續執行,因此使用者可利用這個等待時間閱讀出錯提示。敲鍵後執行exit(1)退出程式。
7) 把一個文字檔案讀入記憶體時,要將ASCII碼轉換成二進位制碼,而把檔案以文字方式寫入磁碟時,也要把二進位制碼轉換成ASCII碼,因此文字檔案的讀寫要花費較多的轉換時間。對二進位制檔案的讀寫不存在這種轉換。
8) 標準輸入檔案(鍵盤),標準輸出檔案(顯示器),標準出錯輸出(出錯資訊)是由系統開啟的,可直接使用。