1. 程式人生 > 其它 >【答疑釋惑】標準C語言如何操作檔案?

【答疑釋惑】標準C語言如何操作檔案?

C語言中操作檔案功能都用ANSI C提供的一組標準庫函式來實現。檔案操作標準庫函式有如下:

fprintf:往檔案中寫格式化資料 fscanf:格式化讀取檔案中資料 fread: 以二進位制形式讀取檔案中的資料 fwrite:以二進位制形式寫資料到檔案中去 getw: 以二進位制形式讀取一個整數 putw: 以二進位制形式存貯一個整數

fopen: 開啟一個檔案

fclose:關閉一個檔案

fgetc: 從檔案中讀取一個字元 fputc: 寫一個字元到檔案中去 fgets: 從檔案中讀取一個字串 fputs: 寫一個字串到檔案中去

feof: 檔案狀態檢查函式,檔案結束 ferror: 檔案讀/寫出錯 clearerr: 清除檔案錯誤標誌 ftell: 瞭解檔案指標的當前位置

rewind: 反向設定檔案讀寫指標 fseek: 設定檔案讀寫指標

這次先挑一些來寫。

# 檔案的開啟

 1.函式原型

FILE *fopen(char *pname,char *mode)

 2.功能說明    按照mode 規定的方式,開啟由pname指定的檔案。若找不到由pname指定的相應檔案,就按以下方式之一處理: (1) 此時如mode 規定按寫方式開啟檔案,就按由pname指定的名字建立一個新檔案; (2) 此時如mode 規定按讀方式開啟檔案,就會產生一個錯誤。

開啟檔案的作用是: (1)分配給開啟檔案一個FILE 型別的檔案結構體變數,並將有關資訊填入檔案結構體變數; (2)開闢一個緩衝區; (3)呼叫作業系統提供的開啟檔案或建立新檔案功能,開啟或建立指定檔案; FILE *:指出fopen是一個返回檔案型別的指標函式;

 3.引數說明 pname:是一個字元指標,它將指向要開啟或建立的檔案的檔名字串。 mode:是一個指向檔案處理方式字串的字元指標。所有可能的檔案處理方式見表8.1

 4.返回值    正常返回:被開啟檔案的檔案指標。    異常返回:NULL,表示開啟操作不成功。

例如:

//定義一個名叫fp檔案指標
FILE *fp;
//判斷按讀方式開啟一個名叫test的檔案是否失敗
if((fp=fopen("test","r")) == NULL)
{
    printf("The file opened.n");
    exit(1);//結束程式的執行
}

要說明的是:C語言將計算機的輸入輸出裝置都看作是檔案。例如,鍵盤檔案、螢幕檔案等。ANSI C標準規定,在執行程式時系統先自動開啟鍵盤、螢幕、錯誤三個檔案。這三個檔案的檔案指標分別是:標準輸入stdin、標準輸出stdout和標準出錯 stderr。

# 檔案的關閉

1. 函式原型

int fclose(FILE *fp);

2. 功能說明   關閉由fp指出的檔案。此時呼叫作業系統提供的檔案關閉功能,關閉由fp->fd指出的檔案;釋放由fp指出的檔案型別結構體變數;返回操作結果,即0或EOF。

3. 引數說明   fp:一個已開啟檔案的檔案指標。

4. 返回值   正常返回:0。   異常返回:EOF,表示檔案在關閉時發生錯誤。 例如:

int n=fclose(fp);

# 檔案的讀寫操作

A. 從檔案中讀取一個字元

  1. 函式原型

int fgetc(FILE *fp);

  2. 功能說明     從fp所指檔案中讀取一個字元。

  3. 引數說明     fp:這是個檔案指標,它指出要從中讀取字元的檔案。

  4. 返回值     正常返回: 返回讀取字元的程式碼。     非正常返回:返回EOF。例如,要從"寫開啟"檔案中讀取一個字元時,會發生錯誤而返回一個EOF。

B. 寫一個字元到檔案中去

1. 函式原型

int fputc(int ch,FILE *fp)

2. 功能說明   把ch中的字元寫入由fp指出的檔案中去。

3. 引數說明   ch:是一個整型變數,記憶體要寫到檔案中的字元(C語言中整型量和字元量可以通用)。   fp:這是個檔案指標,指出要在其中寫入字元的檔案。

4. 返回值   正常返回: 要寫入字元的程式碼。   非正常返回:返回EOF。例如,要往"讀開啟"檔案中寫一個字元時,會發生錯誤而返回一個EOF。

B. 寫一個字元到檔案中去

1. 函式原型

int fputc(int ch,FILE *fp)

2. 功能說明   把ch中的字元寫入由fp指出的檔案中去。

3. 引數說明   ch:是一個整型變數,記憶體要寫到檔案中的字元(C語言中整型量和字元量可以通用)。   fp:這是個檔案指標,指出要在其中寫入字元的檔案。

4. 返回值   正常返回: 要寫入字元的程式碼。   非正常返回:返回EOF。例如,要往"讀開啟"檔案中寫一個字元時,會發生錯誤而返回一個EOF。

參考:http://www.cnblogs.com/likebeta/archive/2012/06/16/2551780.html