《C语言程序设计上机指导》项目十文件_第1页
《C语言程序设计上机指导》项目十文件_第2页
《C语言程序设计上机指导》项目十文件_第3页
《C语言程序设计上机指导》项目十文件_第4页
《C语言程序设计上机指导》项目十文件_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

1、?C?C语言程序设计上机指导语言程序设计上机指导? ?工程工程十文件十文件本章重点文本 文件类型指针FILE类型指针。 文件的翻开与关闭fopen,fclose。 文件的读写fputc,fgetc,fputs,fgets,fread,fwrite,fprintf,fscanf函数。文件的定位rewind,fseek。任务一 关于文件实验一、关于文件实验任务一 关于文件实验 二、实验考核三、典型例题及解析实验描述 文件应用实验。实验目的1掌握文件输入/输出的操作过程。2掌握文件的根本翻开方式。3掌握文件常用文件函数的应用。4理解文本文件、二进制文件的区别。一、关于文件实验任务一 关于文件实验 二

2、、实验考核三、典型例题及解析实验10-1 简单的文件输入例如源程序10-1:#include void main( ) FILE *fp; int i=32767;一、关于文件实验任务一 关于文件实验 二、实验考核三、典型例题及解析 char ch=A; fp=fopen(“test.bin,wb); fwrite(&i,sizeof(int),1,fp); fwrite(&ch,sizeof(char),1,fp); fclose(fp); 一、关于文件实验任务一 关于文件实验 二、实验考核三、典型例题及解析实验结果编辑、编译、运行程序,可以看到用户目录编辑、编译、运行程序,可以看到用户目录

3、产生一个二进制文件,查看文件属性。且文产生一个二进制文件,查看文件属性。且文件大小:件大小: 1KB 字节字节一、关于文件实验任务一 关于文件实验 二、实验考核三、典型例题及解析任务实施实验10-2 字符方式文件读写函数应用例如源程序10-2:#include #include void main( )一、关于文件实验任务一 关于文件实验 二、实验考核三、典型例题及解析 FILE *fp; int ch; if(fp=fopen(“result.txt,w)=NULL) printf(“file created error.n); exit(0); 一、关于文件实验任务一 关于文件实验 二、实

4、验考核三、典型例题及解析do ch=getchar( );fputc(ch,fp); while(ch!=#); fclose(fp); 一、关于文件实验任务一 关于文件实验 二、实验考核三、典型例题及解析实验结果 编辑、编译、运行程序,输入: apple grape pear #一、关于文件实验任务一 关于文件实验 二、实验考核三、典型例题及解析可以看到用户目录产生一个文本文件翻开文本文件,我们可以看到的内容一、关于文件实验任务一 关于文件实验 二、实验考核三、典型例题及解析PS编写此类源程序时要注意: 1本文文件,二进制文件操作前应当如何设置文件翻开的方式。 如果要翻开一个二进制文件使用“

5、rb,翻开一个文本文件使用“rt的翻开方式。一、关于文件实验任务一 关于文件实验 二、实验考核三、典型例题及解析 2使用fputc( )函数与fgetc( )函数对文件数据进行输入/输出的方法。 fputc:数的功能是把一个字符写入指定的文件中。 fgetc :函数的功能是从指定的文件中读一个字符。一、关于文件实验任务一 关于文件实验 二、实验考核三、典型例题及解析 3使用文本文件、二进制文件保存数据的差异。一、关于文件实验任务一 关于文件实验 二、实验考核三、典型例题及解析任务考核实验10-5例如源程序10-5:#include main( ) FILE *fp1,*fp2;一、关于文件实验

6、任务一 关于文件实验 二、实验考核三、典型例题及解析 char n150,n250; int ch; printf(“first file:);gets(n1); printf(“second file:);gets(n2); if(fp1=fopen(n1,r)=NULL)一、关于文件实验任务一 关于文件实验 二、实验考核三、典型例题及解析 printf(“Can not open file%sn,n1);exit(1); if(fp2=fopen(n2,r)=NULL) printf(“Can not open file%sn,n2);exit(2);一、关于文件实验任务一 关于文件实验

7、二、实验考核三、典型例题及解析 fseek(fp2,0L,SEEK_SET); while(ch=fgetc(fp1)!=EOF)FPUTC(CH,FP2); fclose(fp2);fclose(fp1); 一、关于文件实验任务一 关于文件实验 二、实验考核三、典型例题及解析分析分析改错改错问题2问题1第13行,第二文件应该以什么方式翻开?第17行,应该把第二个文件的位置指针移到什么位置,然后如何再把第一个文件的数据复制进来?一、关于文件实验任务一 关于文件实验 二、实验考核三、典型例题及解析任务实施分析与改错: 1第13行,第二文件应该以什么方式翻开。修改第13行。 第二个文件应以写的方式

8、翻开,修该为:if (fp2 = fopen(n2,w) = NULL)一、关于文件实验任务一 关于文件实验 二、实验考核三、典型例题及解析 2第17行,应该把第二个文件的位置指针移到什么位置,然后再把第一个文件的数据复制进来。修改第17行。执行完程序后翻开第二个文件,验证其正确性。应改把第二个文件的位置指针移到尾部,在此写入第一个文件的数据,程序修改为:fseek(fp2,0L,SEEK_END);源程序如以下图所示。一、关于文件实验任务一 关于文件实验 二、实验考核三、典型例题及解析实验结果一、关于文件实验任务一 关于文件实验 二、实验考核三、典型例题及解析实验结果 从运行结果图我们可以得

9、知:如上程序将文本1的内容复制到了文本2中的内容尾部。一、关于文件实验任务一 关于文件实验 二、实验考核三、典型例题及解析从键盘上输入:从键盘上输入:apple grape-一、关于文件实验任务一 关于文件实验 二、实验考核三、典型例题及解析典型例题 例10-1 关于C语言数据文件的表达中正确的选项是( )。 A文件由ASCII码字符列组成,C语言只能读写文本文件 B文件由二进制数据列组成,C语言只能读写二进制文件一、关于文件实验任务一 关于文件实验 二、实验考核三、典型例题及解析 C文件由记录序列组成,可按数据的存放形式分为二进制文件和文本文件 D文件由数据流形式组成,可按数据的存放形式分为

10、二进制文件和文本文件 答案:D一、关于文件实验任务一 关于文件实验 二、实验考核三、典型例题及解析分析: 文件分为两种:二进制文件和文本文件。文本文件是以ASCII码方式存放的文件,二进制文件是以二进制编码的方式来存放文件。但不管哪种文件,C系统都把它当成数据流来处理,故答案为D。一、关于文件实验任务一 关于文件实验 二、实验考核三、典型例题及解析 例10-3假设要用fopen函数翻开一个二进制文件,该文件既能读也能写,那么翻开方式应为( )。 答案:“wb+分析: 该题考查了文件的翻开方式,文件的翻开方式有12种一、关于文件实验任务一 关于文件实验 二、实验考核三、典型例题及解析由w、r、b

11、、a、t、+等组合而成。各字符的含义是: r(read): 读 w(write): 写 a(append): 追加 t(text): 文本文件,可省略不写 b(binary): 二进制文件一、关于文件实验任务一 关于文件实验 二、实验考核三、典型例题及解析+: 读和写 在应用中,字符t可省略,所以,翻开文件时,如果翻开方式字符串中没有字符b,那么默认为翻开文本文件。假设要翻开二进制文件,翻开方式字符串中必须要含有字符b。一、关于文件实验任务一 关于文件实验 二、实验考核三、典型例题及解析例10-7有以下程序: #include main () FILE *fp;int i,a6=1,2,3,4

12、,5,6; fp=fopen(“d3.dat,w+b); fwrite(a,sizeof(int),6,fp);一、关于文件实验任务一 关于文件实验 二、实验考核三、典型例题及解析 fseek(fp,sizeof(int)*3,SEEK_SET);/*该语句使读文件的位置指针从文件头向后移动3个int型数据*/ fread(a,sizeof(int),3,fp); fclose(fp); for(i=0;i6;i+) printf(“%d,ai); 一、关于文件实验任务一 关于文件实验 二、实验考核三、典型例题及解析程序运行后的输出结果是 A4,5,6,4,5,6, B1,2,3,4,5,6,

13、 C4,5,6,1,2,3, D6,5,4,3,2,1, 答案: A一、关于文件实验任务一 关于文件实验 二、实验考核三、典型例题及解析分析: 首先利用fwrite函数把数组a的6个整型数据写入文件中,然后调用fseek函数把文件指针从文件开头向后移动,移动的字节数为3个int数据的大小,此时文件位置指针指向第4个int数据(4)处。一、关于文件实验任务一 关于文件实验 二、实验考核三、典型例题及解析 接着fread函数从文件中把后3个数据4、5、6读取到数组a中,把数组a的前3个数据1、2、3覆盖了,此时数组a的数据为4,5,6,4,5,6,所以答案为A。一、关于文件实验任务一 关于文件实验 二、实验考核三、典型例题及解析例10-8有以下程序: #include void writestr(char *fn,char *str) FILE *fp; fp=fopen(fn,w); fputs(str,fp);一、关于文件实验任务一 关于文件实验 二、实验考核三、典型例题及解析 fclose(fp); main() writestr(“file 1.dat,start); writestr(“file 1.dat,end); 一、关于文件实验任务一 关于文件实验 二、实验考核三、典型例

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论