天天看點

c語言的fopenc語言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" 打開一個用于讀取的文本檔案 "w" 建立一個用于寫入的文本檔案 "a" 附加到一個文本檔案 "rb" 打開一個用于讀取的二進制檔案 "wb" 建立一個用于寫入的二進制檔案 "ab" 附加到一個二進制檔案 "r+" 打開一個用于讀/寫的文本檔案 "w+" 建立一個用于讀/寫的文本檔案 "a+" 打開一個用于讀/寫的文本檔案 “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(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) 标準輸入檔案(鍵盤),标準輸出檔案(顯示器),标準出錯輸出(出錯資訊)是由系統打開的,可直接使用。