?C語言中沒有輸入輸出語句,所有的輸入輸出功能都用 ANSI C提供的一組標準庫函數來實現。文件操作標準庫函數有:「文件的打開操作」 void?main(int?argc,char?*argv[])?//命令行參數 { ????int?ch;//定義文件類型指針 ????FILE?*fp;//判斷命令行是否正確 ????if(argc!=2) ????{ ????????printf("Error?format,Usage:?display?filename1 "); ????????return;?//鍵入了錯誤的命令行,結束程序的執行 ????} ????//按讀方式打開由argv[1]指出的文件 ????if((fp=fopen(argv[1],"r"))==NULL) ????{ ????????printf("The?file?<%s>?can?not?be?opened. ",argv[1]);//打開操作不成功 ????????return;//結束程序的執行 ????} ????//成功打開了argv[1]所指文件 ????ch=fgetc(fp);?//從fp所指文件的當前指針位置讀取一個字符 ????while(ch!=EOF)?//判斷剛讀取的字符是否是文件結束符 ????{ ????????putchar(ch);?//若不是結束符,將它輸出到屏幕上顯示 ????????ch=fgetc(fp);?//繼續從fp所指文件中讀取下一個字符 ????}?//完成將fp所指文件的內容輸出到屏幕上顯示 ????fclose(fp);?//關閉fp所指文件 } B. 寫一個字符到文件中去1、函數原型
- fopen 打開一個文件
- fclose 關閉一個文件
- fgetc 從文件中讀取一個字符
- fputc 寫一個字符到文件中去
- fgets 從文件中讀取一個字符串
- fputs 寫一個字符串到文件中去
- fprintf 往文件中寫格式化數據
- fscanf 格式化讀取文件中數據
- fread 以二進制形式讀取文件中的數據
- fwrite 以二進制形式寫數據到文件中去
- getw 以二進制形式讀取一個整數
- putw 以二進制形式存貯一個整數
- 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.14、返回值 正常返回:被打開文件的文件指針。 異常返回:NULL,表示打開操作不成功。例如:
//定義一個名叫fp文件指針 FILE *fp; //判斷按讀方式打開一個名叫test的文件是否失敗 if((fp=fopen("test","r"))?==?NULL)//打開操作不成功 { ????printf("The?file?can?not?be?opened. ");????? ????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。 5、實例【例8.1】顯示指定文件的內容。
//程序名為:display.c //執行時可用:display filename1 形式的命令行運行。顯示文件filename1中的內容。例如,執行命令行display display.c將在屏幕上顯示display的原代碼。 //File?display?program. #include?
int?fputc(int?ch,FILE?*fp) 2、功能說明 把ch中的字符寫入由fp指出的文件中去。3、參數說明 ch:是一個整型變量,內存要寫到文件中的字符(C語言中整型量和字符量可以通用)。 fp:這是個文件指針,指出要在其中寫入字符的文件。4、返回值 正常返回:要寫入字符的代碼。 非正常返回:返回EOF。例如,要往"讀打開"文件中寫一個字符時,會發生錯誤而返回一個EOF。
審核編輯:湯梓紅
評論
查看更多