c語言fopen函式

c語言fopen函式

fopen函式是在當前目錄下打開一個檔案,其調用的一般形式為: 檔案指針名=fopen(檔案名稱,使用檔案方式); “檔案指針名”必須是被聲明為FILE 類型的指針變 量; “檔案名稱”是被打開檔案的檔案名稱; “使用檔案方式”是指檔案的類型和操作要求; “檔案名稱”是字元串常量或字元數組。

函式介紹

例如:

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) 標準輸入檔案(鍵盤),標準輸出檔案(顯示器),標準出錯輸出(出錯信息)是由系統打開的,可直接使用。

相關詞條

相關搜尋

熱門詞條

聯絡我們