c程序设计 第13章 文件 答案解析.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
c程序设计 第13章 文件 答案解析

例13.1 程序为: #include stdio.h #include stdlib.h void main() { FILE *fp; char ch,filename[10]; scanf(%s,filename); if((fp=fopen(filename,w))==NULL) { printf(cannot open file\n); exit(0); } ch=getchar(); ch=getchar(); while(ch!=#) { fputc(ch,fp);putchar(ch); ch=getchar(); } putchar(10); fclose(fp); } 例13.2 程序为: #include stdio.h #include stdlib.h void main() { FILE *in, *out; char ch,infile[10],outfile[10]; printf(Enter the infile name:\n); scanf(%s,infile); printf(Enter the infile name:\n); scanf(%s,outfile); if((in=fopen(infile,r))==NULL) { printf(cannot open file\n); exit(0); } if((out=fopen(outfile,w))==NULL) { printf(cannot open file\n); exit(0); } while(!feof(in)) fputc(fgetc(in),out); fclose(in); fclose(out); } 注:在该程序的运行中,每复制一次就会产生一个乱码置于最后,并依次叠加。这不是个优秀的程序。 13.5.1 rewind函数: #include stdio.h void main() { FILE *fp1,*fp2; fp1=fopen(file1.c,r); fp2=fopen(file2.c,w); while(!feof(fp1)) putchar(getc(fp1)); rewind(fp1); while(!feof(fp1)) putc(getc(fp1),fp2); fclose(fp1);fclose(fp2); } 例13.5 #includestdlib.h #includestdio.h struct student_type { char name[10]; int num; int age; char sex; }stud[10]; void main() { int i; FILE *fp; if((fp=fopen(file22.c,rb))==NULL) { printf(can not open file\n); exit(0); } for(i=0;i10;i+=2) { fseek(fp,i*sizeof(struct student_type),0); fread(stud[i],sizeof(struct student_type),1,fp); printf(%s %d %d %c\n,stud[i].name,stud[i].num,stud[i].age,stud[i].sex); } fclose(fp); } 注:这个程序是对的,但常用于处理二进制文件,因为文本文件要发生字符转换,计算位置时常发生混乱。 习题 13.1 对c文件操作有些什么特点?什么是缓冲文件系统?什么是非缓冲文件系统?这两者的缓冲区有什么区别? 答:c语言把文件看作是一个字符的序列级,即由一个一个字符的数据顺序组成。根据数据的组织形式,可以分为:ASCII文件(文本文件)和二进制文件。一个c文件是一个字节流或二进制流(流式文件)。它允许对文件存取一个字符,这就增加了处理的灵活性。 缓冲文件系统:是指系统自动在内存中为每一个正在使用的文件开辟一个缓冲区,如果从磁盘向内存读入数据,则一次从磁盘文件将一批数据输入到内存缓冲区,然后再从缓冲区逐个地将数据送到程序数据区中去。 非缓冲文件系统:是指系统不自动开辟确定大小的缓冲区,而有程序为每个文件设定缓冲区。 用缓冲文件系统进行的输入输出又称高级磁盘输入输出,用非缓冲文件系统进行的输入输出又称为低级输出输入系统。ANSI C标准不采用非缓冲文件系统,而只采用缓冲文件系统,即既用缓冲文件系统处理文本文件,也用它处理二进制文件,也就是将缓冲文件系统扩充为可以处理二进制文件。 13.2

文档评论(0)

shuwkb + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档