C程序设计课件第10章课件_第1页
C程序设计课件第10章课件_第2页
C程序设计课件第10章课件_第3页
C程序设计课件第10章课件_第4页
C程序设计课件第10章课件_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、任何高级语言,对文件操作都应该遵循:任何高级语言,对文件操作都应该遵循: 打开文件打开文件 操作文件操作文件 关闭文件关闭文件这样的过程。这样的过程。下面就遵循这个规则对文件的操作进行说明下面就遵循这个规则对文件的操作进行说明 出错操作成功的文件指针指向文件返回值 NULL filename = 出错操作成功返回值 EOF 0 = ASCII = EOF 读取字符的码操作成功返回值出错或遇到文件结束出错操作成功码所写字符的返回值 EOF ASCII = 否则操作成功所指的字符数组首地址返回值 = NULLstr否则操作成功非负值返回值 = EOF错误或文件结束操作成功实际读取的字段个数返回值

2、= EOF = 实际写入的字段个数操作成功返回值其它操作错误否则一个负数操作成功实际读取的参数个数返回值 = 否则一个负数操作成功实际写入的参数个数返回值 = 否则)(操作成功位置指针值返回值 1 = EOF否则非操作成功返回值 0 0 = 0 = 0 EOF非() 若读操作后,文件暗标记返回值 (文件读写位置指针)到达文件尾否则void main(int argc, char *argv) FILE *output;/* 目标文件指针目标文件指针 */ char ch; if(argc!=3) /*参数个数不对参数个数不对*/ printf(the number of arguments n

3、ot correctn); printf(n Usage: 可执行文件名可执行文件名 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) /*创建失败创建失败*/ printf(can not create destination filen); exit(0); while ( !feof(input) ) /*

4、复制源文件到目标文件中复制源文件到目标文件中*/fputc(fgetc(input),output); fclose(input); /*关闭源文件关闭源文件*/ fclose(output); /*关闭目标文件关闭目标文件*/int line=1;/* 复制复制 */ fprintf( output, %5d, line ); /*写入第一行行号写入第一行行号*/ while((ch=fgetc(input)!=EOF) fputc( ch,output ); /* 写入当前字符写入当前字符 */ if ( ch=n | ch=r ) fprintf( output, %5d, line+

5、); /*,行号增,行号增1*/开始开始结束结束V1写入写入f3 ; 读读f1V2写入写入f3; 读读f2文件文件 f1 未结束未结束文件文件 f2 未结束未结束V1写入写入f3 ;读读f1V2写入写入f3;读读f2文件文件 f1 与与 f2均未结束均未结束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”)结束结束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;/*目标文件指针目标文件指针 */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. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论