* CSIM, PU C Language 學習目標:開檔、讀檔、更新檔與關閉檔案 二進位檔 以二進位的格式儲存,如影像檔或執行檔。 將整數182956以二進位的格式來存檔時,會以其二進位的值來儲存 54 53 57 50 56 49 以 ASCII 碼儲存 1XXXXXXXXXX0101100 程式在執行的時候,會需要一些額外的記憶體來存放資料,以提高程式執行的效率,此暫時存放的區域就稱為緩衝區 buffer 。 檔案的處理方式 FILE *fp; 必須宣告一個指向檔案的指標 fp fopen "phone" , "r" ; 將 fp 指標指向 phone 檔案 利用fopen函數開啟檔案時,若開啟失敗,會回傳 NULL 開啟一個檔案,可將資料寫入此檔案的末端。 若檔案不存在,系統會自動產生。 a 附加於檔案之後 開啟檔案以供寫入。 原有檔案若存在,則內容會被覆蓋掉。 若檔案不存在,則系統會自動產生此檔案。 w 寫入資料 開啟檔案以供讀取。 檔案必須存在,否則會開啟失敗。 r 讀取資料 說明 代碼 存取模式 由於反斜線是C語言中的控制字元,因此必須 將路徑中有反斜線 \ 的部分再加一個反斜線。
int putc int ch, FILE *fptr ;將字元 ch寫入由fptr所指向的檔案。 寫入字元 int getc FILE *fptr ;由fptr所指向的檔案一次讀取一個字元,傳回值字元。若遇到檔案結尾,會傳回EOF。 讀取字元 int fclose FILE *fptr ;關閉由fptr指向的檔案。 關閉檔案 fopen 傳回值為檔案指標或NULL 開檔失敗 。 開啟檔案 格式與說明 函數功能 /*ch是用來接收讀取的字元*/ /*count用來計算檔案的字元數*/ int fputs const char *str, FILE *fptr ; 將字串 str 寫入 fptr 所指向的檔案。 寫入字串 int feof FILE *fptr ; 檢查fptr所指向的檔案是否已讀取到檔案結束的位置。fscanf的返回值 若尚未到達檔尾,則傳回0。 檢查檔案是否結束 int fprintf FILE *fptr, char *format, variable-list ; 將資料以規定格式寫入檔案內 Ex: fprintf fp,"\2: The average is %6.2f",average ; 寫入檔案 int fputc int ch, FILE *fptr ; fputc 函數返回一個向檔案所寫字元的值,此時寫操作成功,否則返回EOF 文件結束結束其值為-1,在stdio.h中定義 表示寫操作錯誤。
寫入字元 格式與說明 函數功能 int fscanf FILE *fptr, char *format, address-list ; fscanf 函數的用法與scanf 函數相似,只是它是從文件中讀到資訊。 fscanf 函數的返回值為EOF 即-1 ,表明讀取資料錯誤。 讀取檔案 char *fgets char *str, int maxchar, FILE *fptr ; 第一個參數:字元陣列名稱 第二個參數:陣列大小 第三個參數:指向檔案的指標 讀取字串 int fgetc FILE *fptr ; fgetc 函數返回檔案目前位置的一個字元,讀取錯誤時傳回EOF。 讀取字元 格式與說明 函數功能 /*判斷是否已輸入完畢*/ int fseek FILE *fptr, long offset, int fromwhere ; fseek 函數的作用是將檔案的位置指標設定到從fromwhere開始的第offset位元群組的位置上 文件位置指標起始計算位置fromwher: SEEK_SET 0 從檔案開頭 SEEK_CUR 1 從檔案指標的現行位置 SEEK_END 2 從檔案末尾 指定文件位置 int fwrite void *buf, int size, int count, FILE *fptr ; fwrite 函數是把buf指標所指的緩衝器中, 長度為size個位元群組的count個字段寫到fptr指向的檔案中去。fscanf的返回值
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-29643-2.html
太棒了