檔案的開啟 fopen函式

2021-04-17 19:47:45 字數 1893 閱讀 4900

fopen函式用來開啟乙個檔案,其呼叫的一般形式為:

檔案指標名=fopen(檔名,使用檔案方式);

其中,

「檔案指標名」必須是被說明為file 型別的指標變數;

「檔名」是被開啟檔案的檔名;

「使用檔案方式」是指檔案的型別和操作要求。

「檔名」是字串常量或字串陣列。

例如:

file *fp;

fp=("file a","r");

其意義是在當前目錄下開啟檔案file a,只允許進行「讀」操作,並使fp指向該檔案。

又如:

file *fphzk

fphzk=("c://hzk16","rb")

其意義是開啟c驅動器磁碟的根目錄下的檔案hzk16,這是乙個二進位制檔案,只允許按二進位制方式進行讀操作。兩個反斜線「// 」中的第乙個表示轉義字元,第二個表示根目錄。

使用檔案的方式共有12種,下面給出了它們的符號和意義。

檔案使用方式

意義 「rt」

唯讀開啟乙個文字檔案,只允許讀資料

「wt」

只寫開啟或建立乙個文字檔案,只允許寫資料

「at」

追加開啟乙個文字檔案,並在檔案末尾寫資料

「rb」

唯讀開啟乙個二進位制檔案,只允許讀資料

「wb」

只寫開啟或建立乙個二進位制檔案,只允許寫資料

「ab」

追加開啟乙個二進位制檔案,並在檔案末尾寫資料

「rt+」

讀寫開啟乙個文字檔案,允許讀和寫

「wt+」

讀寫開啟或建立乙個文字檔案,允許讀寫

「at+」

讀寫開啟乙個文字檔案,允許讀,或在檔案末追加資料

「rb+」

讀寫開啟乙個二進位制檔案,允許讀和寫

「wb+」

讀寫開啟或建立乙個二進位制檔案,允許讀和寫

「ab+」

讀寫開啟乙個二進位制檔案,允許讀,或在檔案末追加資料

對於檔案使用方式有以下幾點說明:

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

r(read): 讀

w(write): 寫

t(text): 文字檔案,可省略不寫

b(banary): 二進位制檔案

+: 讀和寫

2) 凡用「r」開啟乙個檔案時,該檔案必須已經存在,且只能從該檔案讀出。

3) 用「w」開啟的檔案只能向該檔案寫入。若開啟的檔案不存在,則以指定的檔名建立該檔案,若開啟的檔案已經存在,則將該檔案刪去,重建乙個新檔案。

4) 若要向乙個已存在的檔案追加新的資訊,只能用「a」方式開啟檔案。但此時該檔案必須是存在的,否則將會出錯。

5) 在開啟乙個檔案時,如果出錯,fopen將返回乙個空指標值null。在程式中可以用這一資訊來判別是否完成開啟檔案的工作,並作相應的處理。因此常用以下程式段開啟檔案:

6) if((fp=fopen("c://hzk16","rb")==null)

這段程式的意義是,如果返回的指標為空,表示不能開啟c盤根目錄下的hzk16檔案,則給出提示資訊「error on open c:/ hzk16 file!」,下一行getch()的功能是從鍵盤輸入乙個字元,但不在螢幕上顯示。在這裡,該行的作用是等待,只有當使用者從鍵盤敲任一鍵時,程式才繼續執行,因此使用者可利用這個等待時間閱讀出錯提示。敲鍵後執行exit(1)退出程式。

7) 把乙個文字檔案讀入記憶體時,要將ascii碼轉換成二進位製碼,而把檔案以文字方式寫入磁碟時,也要把二進位製碼轉換成ascii碼,因此文字檔案的讀寫要花費較多的轉換時間。對二進位制檔案的讀寫不存在這種轉換。

8) 標準輸入檔案(鍵盤),標準輸出檔案(顯示器),標準出錯輸出(出錯資訊)是由系統開啟的,可直接使用。

檔案操作之開啟檔案 fopen函式用法

1.格式 file fp fp fopen filename.txt r 2.說明 第一行定義乙個檔案指標型別的變數fp。第二行開啟乙個檔案,返回乙個檔案指標賦值給fp 若開啟檔案失敗,返回空指標 fopen函式的第乙個引數 filename.txt 是要開啟的檔案的檔名,第二個引數表示檔案開啟模式...

檔案的開啟和關閉函式 fopen和fclose

一 fopen 1.基本格式 fopen 檔名 檔案的使用方式 開啟檔案 eg file fp fp fopen bookinfo.txt r file fp fp fopen d testc input.dat rb 以唯讀方式開啟d盤testc目錄下的二進位制檔案input.datr 唯讀 向程...

使用C 語言fopen函式開啟檔案失敗

include int main void else return 0 這是一段關於fopen的使用 其中file fopen wxb.txt r 這段 fopen後面接的是 wxb.txt 檔名 r 開啟方式,這是文字方式 wxb跟fopen後面wxb.txt的檔名不一樣,你如果在源 中wxb後面...