C程序設(shè)計課件第10章課件_第1頁
C程序設(shè)計課件第10章課件_第2頁
C程序設(shè)計課件第10章課件_第3頁
C程序設(shè)計課件第10章課件_第4頁
C程序設(shè)計課件第10章課件_第5頁
已閱讀5頁,還剩46頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、任何高級語言,對文件操作都應(yīng)該遵循:任何高級語言,對文件操作都應(yīng)該遵循: 打開文件打開文件 操作文件操作文件 關(guān)閉文件關(guān)閉文件這樣的過程。這樣的過程。下面就遵循這個規(guī)則對文件的操作進(jìn)行說明下面就遵循這個規(guī)則對文件的操作進(jìn)行說明 出錯操作成功的文件指針指向文件返回值 NULL filename = 出錯操作成功返回值 EOF 0 = ASCII = EOF 讀取字符的碼操作成功返回值出錯或遇到文件結(jié)束出錯操作成功碼所寫字符的返回值 EOF ASCII = 否則操作成功所指的字符數(shù)組首地址返回值 = NULLstr否則操作成功非負(fù)值返回值 = EOF錯誤或文件結(jié)束操作成功實際讀取的字段個數(shù)返回值

2、= EOF = 實際寫入的字段個數(shù)操作成功返回值其它操作錯誤否則一個負(fù)數(shù)操作成功實際讀取的參數(shù)個數(shù)返回值 = 否則一個負(fù)數(shù)操作成功實際寫入的參數(shù)個數(shù)返回值 = 否則)(操作成功位置指針值返回值 1 = EOF否則非操作成功返回值 0 0 = 0 = 0 EOF非() 若讀操作后,文件暗標(biāo)記返回值 (文件讀寫位置指針)到達(dá)文件尾否則void main(int argc, char *argv) FILE *output;/* 目標(biāo)文件指針目標(biāo)文件指針 */ char ch; if(argc!=3) /*參數(shù)個數(shù)不對參數(shù)個數(shù)不對*/ printf(the number of arguments n

3、ot correctn); printf(n Usage: 可執(zhí)行文件名可執(zhí)行文件名 source-file dest-file); exit(0); /*退出退出*/ if (input=fopen(argv1,r)=NULL) /*打開源文件失敗打開源文件失敗*/ printf(can not open source filen); exit(0); if (output=fopen(argv2,w)=NULL) /*創(chuàng)建失敗創(chuàng)建失敗*/ printf(can not create destination filen); exit(0); while ( !feof(input) ) /*

4、復(fù)制源文件到目標(biāo)文件中復(fù)制源文件到目標(biāo)文件中*/fputc(fgetc(input),output); fclose(input); /*關(guān)閉源文件關(guān)閉源文件*/ fclose(output); /*關(guān)閉目標(biāo)文件關(guān)閉目標(biāo)文件*/int line=1;/* 復(fù)制復(fù)制 */ fprintf( output, %5d, line ); /*寫入第一行行號寫入第一行行號*/ while((ch=fgetc(input)!=EOF) fputc( ch,output ); /* 寫入當(dāng)前字符寫入當(dāng)前字符 */ if ( ch=n | ch=r ) fprintf( output, %5d, line+

5、); /*,行號增,行號增1*/開始開始結(jié)束結(jié)束V1寫入寫入f3 ; 讀讀f1V2寫入寫入f3; 讀讀f2文件文件 f1 未結(jié)束未結(jié)束文件文件 f2 未結(jié)束未結(jié)束V1寫入寫入f3 ;讀讀f1V2寫入寫入f3;讀讀f2文件文件 f1 與與 f2均未結(jié)束均未結(jié)束v1v2打開文件:打開文件:f1、f2、f3 讀讀f1、f2v1、v2 fread( &v1 , sizeof(int) , 1 , f1 );fread( &v2 , sizeof(int) , 1 , f2 );while( !feof(f1) & !feof(f2) ) if (v1 v2) /* 取較小元素存入取較小元素存入f3文件

6、文件 */ fwrite( &v1 , sizeof(int) , 1 , f3 );fread( &v1 , sizeof(int) , 1 , f1 ); else fwrite( &v2 , sizeof(int) , 1 , f3 );fread( &v2 , sizeof(int) , 1 , f2 ); while( !feof(f1) ) /* 處理處理f1文件尾部文件尾部 */ fwrite( &v1 , sizeof(int) , 1 , f3 ); fread( &v1 , sizeof(int) , 1 , f1 ); while( !feof(f2) ) /* 處理處理

7、f2文件尾部文件尾部 */ fwrite( &v2 , sizeof(int) , 1 , f3 ); fread( &v2 , sizeof(int) , 1 , f2 ); THE LIST OF SIN(X)a SIN(a) a SIN(a) a SIN(a) a SIN(a) a SIN(a)0 0.0000 1 0.0175 2 0.0349 3 0.0523 4 0.06985 0.0872 6 0.1045 7 0.1219 8 0.1392 9 0.1564. . 到到 359為止為止開始開始打印表頭打印表頭 for( v=0; v=71; v+) 寫寫( fp , v*5+u

8、 , sin(v*5+u) */180) ) for( u=0; u=4; u+)寫寫(fp,”n”)結(jié)束結(jié)束void main() int u,v; FILE *f; if ( f=fopen(“sin.tab”,w)=NULL) /*打開文件打開文件*/ printf(can not open file sin.tabn); exit(0); fprintf( f , “%40c THE LIST OF SIN(X)n” , ) ; /* 表頭表頭 */ fprintf( f , “a SIN(a) a SIN(a) a SIN(a)” ) ; fprintf( f , “ a SIN(a

9、) a SIN(a)n” ) ; for ( v=0; v=71; v+ ) /* 表體表體 */ for ( u=0; u name0 ; ADDRESS = addr顯示顯示 name0讀入電話號碼讀入電話號碼 = telname0、addr、tel寫入文件寫入文件NAMEADDR.TABvoid main()FILE *name; /*名字源文件指針名字源文件指針*/FILE *address; /*地址源文件指針地址源文件指針*/FILE *nameaddr;/*目標(biāo)文件指針目標(biāo)文件指針 */char name08,addr30,tel10;if (name=fopen(NAME.DA

10、T,r)=NULL) printf(can not open source file NAME.DATn); exit(0); if (address=fopen(ADDRESS.DAT,r)=NULL) printf(can not open source file ADDRESS.DATn); exit(0);if (nameaddr=fopen(NAMEADDR.DAT,w)=NULL) printf(can not create destination file NAMEADDRn);exit(0);while(!feof(name)&!feof(address)/*控制全部處理控制全部處理*/ /* 控制讀控制讀 */fscanf(name,%8s,&name0); /* 讀入姓名讀入姓名=name0 */fscanf(address,%32s,&addr); /* 讀入地址讀入地址= addr */printf(name %s please input tel:,name0); /*輸出提示信息輸出提示信息*/scanf(%s,&tel); /* 終端

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論