?C語言中沒有輸入輸出語句,所有的輸入輸出功能都用 ANSI C提供的一組標準庫函數(shù)來實現(xiàn)。文件操作標準庫函數(shù)有:「文件的打開操作」 void?main(int?argc,char?*argv[])?//命令行參數(shù) { ????int?ch;//定義文件類型指針 ????FILE?*fp;//判斷命令行是否正確 ????if(argc!=2) ????{ ????????printf("Error?format,Usage:?display?filename1 "); ????????return;?//鍵入了錯誤的命令行,結束程序的執(zhí)行 ????} ????//按讀方式打開由argv[1]指出的文件 ????if((fp=fopen(argv[1],"r"))==NULL) ????{ ????????printf("The?file?<%s>?can?not?be?opened. ",argv[1]);//打開操作不成功 ????????return;//結束程序的執(zhí)行 ????} ????//成功打開了argv[1]所指文件 ????ch=fgetc(fp);?//從fp所指文件的當前指針位置讀取一個字符 ????while(ch!=EOF)?//判斷剛讀取的字符是否是文件結束符 ????{ ????????putchar(ch);?//若不是結束符,將它輸出到屏幕上顯示 ????????ch=fgetc(fp);?//繼續(xù)從fp所指文件中讀取下一個字符 ????}?//完成將fp所指文件的內容輸出到屏幕上顯示 ????fclose(fp);?//關閉fp所指文件 } B. 寫一個字符到文件中去1、函數(shù)原型
- fopen 打開一個文件
- fclose 關閉一個文件
- fgetc 從文件中讀取一個字符
- fputc 寫一個字符到文件中去
- fgets 從文件中讀取一個字符串
- fputs 寫一個字符串到文件中去
- fprintf 往文件中寫格式化數(shù)據(jù)
- fscanf 格式化讀取文件中數(shù)據(jù)
- fread 以二進制形式讀取文件中的數(shù)據(jù)
- fwrite 以二進制形式寫數(shù)據(jù)到文件中去
- getw 以二進制形式讀取一個整數(shù)
- putw 以二進制形式存貯一個整數(shù)
- feof 文件結束
- ferror 文件讀/寫出錯
- clearerr 清除文件錯誤標志
- ftell 了解文件指針的當前位置
- rewind 反繞
- fseek 隨機定位
文件的打開
1、函數(shù)原型FILE?*fopen(char?*pname,char?*mode) 2、功能說明 ?按照mode 規(guī)定的方式,打開由pname指定的文件。若找不到由pname指定的相應文件,就按以下方式之一處理:1) 此時如mode 規(guī)定按寫方式打開文件,就按由pname指定的名字建立一個新文件;2) 此時如mode 規(guī)定按讀方式打開文件,就會產生一個錯誤。打開文件的作用是:1)分配給打開文件一個FILE 類型的文件結構體變量,并將有關信息填入文件結構體變量;2)開辟一個緩沖區(qū);3)調用操作系統(tǒng)提供的打開文件或建立新文件功能,打開或建立指定文件;FILE *:指出fopen是一個返回文件類型的指針函數(shù);3、參數(shù)說明 pname:是一個字符指針,它將指向要打開或建立的文件的文件名字符串。mode:是一個指向文件處理方式字符串的字符指針。所有可能的文件處理方式見表8.14、返回值 正常返回:被打開文件的文件指針?! ?/span>異常返回:NULL,表示打開操作不成功。例如:
//定義一個名叫fp文件指針 FILE *fp; //判斷按讀方式打開一個名叫test的文件是否失敗 if((fp=fopen("test","r"))?==?NULL)//打開操作不成功 { ????printf("The?file?can?not?be?opened. ");????? ????exit(1);//結束程序的執(zhí)行 } 要說明的是:C語言將計算機的輸入輸出設備都看作是文件。例如,鍵盤文件、屏幕文件等。ANSI C標準規(guī)定,在執(zhí)行程序時系統(tǒng)先自動打開鍵盤、屏幕、錯誤三個文件。這三個文件的文件指針分別是:標準輸入stdin、標準輸出stdout和標準出錯 stderr。
文件的關閉
1. 函數(shù)原型int?fclose(FILE *fp); 2. 功能說明 關閉由fp指出的文件。此時調用操作系統(tǒng)提供的文件關閉功能,關閉由fp->fd指出的文件;釋放由fp指出的文件類型結構體變量;返回操作結果,即0或EOF。3. 參數(shù)說明 fp:一個已打開文件的文件指針。4. 返回值 正常返回:0?! ?/span>異常返回:EOF,表示文件在關閉時發(fā)生錯誤。例如:
int?n=fclose(fp);
文件的讀寫操作
A. 從文件中讀取一個字符 1. 函數(shù)原型int?fgetc(FILE *fp); 2、功能說明 從fp所指文件中讀取一個字符?! ?/span>3、參數(shù)說明 fp:這是個文件指針,它指出要從中讀取字符的文件?! ?/span>4、返回值 正常返回:返回讀取字符的代碼?! ?/span>非正常返回:返回EOF。例如,要從"寫打開"文件中讀取一個字符時,會發(fā)生錯誤而返回一個EOF?! ?/span>5、實例【例8.1】顯示指定文件的內容。
//程序名為:display.c //執(zhí)行時可用:display filename1 形式的命令行運行。顯示文件filename1中的內容。例如,執(zhí)行命令行display display.c將在屏幕上顯示display的原代碼。 //File?display?program. #include?
int?fputc(int?ch,FILE?*fp) 2、功能說明 把ch中的字符寫入由fp指出的文件中去。3、參數(shù)說明 ch:是一個整型變量,內存要寫到文件中的字符(C語言中整型量和字符量可以通用)。 fp:這是個文件指針,指出要在其中寫入字符的文件。4、返回值 正常返回:要寫入字符的代碼?! ?/span>非正常返回:返回EOF。例如,要往"讀打開"文件中寫一個字符時,會發(fā)生錯誤而返回一個EOF。
審核編輯:湯梓紅
評論