函式介紹
例如:
FILE *fp;
fp=fopen("file a","r");
其意義是在當前目錄下打開檔案file a,只允許進行“讀”操作,並使fp指向該檔案。
又如:
FILE *fphzk
fphzk=fopen("c:\\hzk16","rb");
其意義是打開C驅動器磁碟的根目錄下的檔案hzk16,這是一個二進制檔案,只允許按二進制方式進行讀操作。兩個反斜線“\\ ”中的第一個表示轉義字元,第二個表示根目錄。
使用檔案的方式共有12種,下面給出了它們的符號和意義。
檔案使用方式
意義
"r" = "rt"
打開一個文本檔案,檔案必須存在,只允許讀
"r+" = "rt+"
打開一個文本檔案,檔案必須存在,允許讀寫
"rb"
打開一個二進制檔案,檔案必須存在,只允許讀
“rb+”
打開一個二進制檔案,檔案必須存在,允許讀寫
"w" = “wt”
新建一個文本檔案,已存在的檔案將被刪除,只允許寫
"w+" = "wt+"
新建一個文本檔案,已存在的檔案將被刪除,允許讀寫
“wb”
新建一個二進制檔案,已存在的檔案將被刪除,只允許寫
“wb+”
新建一個二進制檔案,已存在的檔案將被刪除,允許讀寫
"a" = "at"
打開或新建一個文本檔案,只允許在檔案末尾追寫
"a+" = "at+"
打開或新建一個文本檔案,可以讀,但只允許在檔案末尾追寫
“ab”
打開或新建一個二進制檔案,只允許在檔案末尾追寫
“ab+”
打開或新建一個二進制檔案,可以讀,但只允許在檔案末尾追寫
對於檔案使用方式有以下幾點說明:
1) 檔案使用方式由r,w,a,t,b,+六個字元拼成,各字元的含義是:
r(read): 唯讀
w(write): 只寫
a(append): 追加
t(text): 文本檔案,可省略不寫
b(binary): 二進制檔案
+: 讀和寫
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) 標準輸入檔案(鍵盤),標準輸出檔案(顯示器),標準出錯輸出(出錯信息)是由系統打開的,可直接使用。