第9章++文++++件.ppt_第1页
第9章++文++++件.ppt_第2页
第9章++文++++件.ppt_第3页
第9章++文++++件.ppt_第4页
第9章++文++++件.ppt_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

1、第9章 文 件,9,内容提要,本章主要介绍如何用C语言编译系统提供的文件操作函数 建立和使用存储在外部介质上的数据文件,包括文本文件和二进制文件的读写、顺序文件和随机文件的创建和使用。,文件概述,数据文件是程序设计中的一个重要概念,是实现程序和数据分离的重要方式。 1. 文件的逻辑结构 2. 文件的存取方式 3. 文件操作的步骤,文件的打开与关闭,1. 文件指针 (1)定义文件指针的格式如下: FILE *fp1,*fp2; 这样,fp1和fp2就成为文件指针,由fopen()函数可将它们指向指定的文件。 2. 打开文件 (1)打开文件要用库函数fopen(),其调用的一般格式如下: FILE

2、 *fp; fp=fopen(fname,mode);,文件使用方式,关闭文件,文件操作完毕,应用fclose()函数将文件关闭,以保证本次文件操作有效。调用格式为: fclose(fp);,文件的读写操作,一个文件打开后,就可以对该文件进行读写。C语言用编译系统提供的文件输入、输出函数实施文件的读写。这些输入、输出函数往往针对不同的数据对象,采用不同的数据格式。 文本文件读写函数 二进制文件读写函数,文件检测函数,文件检测函数用来检测文件指针是否已到文件末尾,或文件读写操作中是否出现错误等情况,以便能正确地进行文件的存取。,文件的顺序存取和随机存取,文件指针的定位对文件的读写至关重要,因为对

3、文件的任何读写都是在文件指针当前所指的位置上进行的,移动了文件指针直接影响到文件读写的位置。 1. 文件指针的定位 2. 文件的顺序存取 3. 文件的随机存取,本章总结,本章应重点掌握流式文件、文本文件和二进制文件、顺序文件和随机文件的概念,文件操作的3个步骤,以及文件读写函数、文件指针定位函数在文件操作中的使用。 难点是如何组织文件的记录,如何使用配对的文件读写函数存取文本文件和二进制文件,以及如何组织和存取顺序文件和随机文件。,本章习题,一、选择题 1. C语言文件的组成成分是_。 A. 记录 B. 数据行 C. 数据块 D. 字符(字节)序列 2. C语言中,数据文件的存取方式为_。 A

4、. 只能顺序存取 B. 只能随机存取(也叫直接存取) C. 可以顺序存取和随机存取 D. 只能从文件的开头进行存取 3. 在C语言中,用“a”方式打开一个已含有10个字符的文本文件,并写入了5个新字符,则该文件中存放的字符是_。 A. 新写入的5个字符 B. 新写入的5个字符覆盖原有字符中的前5个字符,保留原有的后5个字符 C. 原有的10个字符在前,新写入的5个字符在后 D. 新写入的5个字符在前,原有的10个字符在后,本章习题,4. 设已正确打开一个已存有数据的文本文件,文件中原有数据为abcdef,新写入的数据为xyz,若文件中的数据变为xyzdef,则该文件打开的方式是_。 A. w

5、B. w+ C. a+ D. r+ 5. 下面的程序执行后,文件test.t中的内容是_。 #include #include void fun( char *fname, char *st ) FILE *myf; int i; myf=fopen(fname,w); for (i=0;istrlen(st);i+) fputc(sti,myf); fclose(myf); main() fun(test.t,new world); fun(test.t,hello,); A. hello, B. new worldhello, C. new world D. hello,world,本章习

6、题,6. 以下程序将一个名为 f1.dat 的文本文件的内容追加到一个名为 f2.dat文件的末尾,请对程序空白处进行正确的选择。 #include main( ) char c; FILE *fp1,*fp2; fp1=fopen(f1.dat,r); fp2=fopen(f2.dat,a); while (c= ) != EOF) ; fclose(fp1); fclose(fp2); A. putc(c,fp2) B. getc(fp2) C. getc(fp1) D. putc(c,fp1) A. putc(c,fp1) B. getc(fp1) C. getc(fp2) D. put

7、c(c,fp2),本章习题,7. 下面的程序用来建立一个名为file.txt的文本文件,并将键盘输入的10个字符(不含回车键)存入该文件。请对程序空白处选择正确的答案。 #include main() FILE *fp; char c,ch; int i; fp= (file.txt,w); for (i=0;i10;i+) c=getchar(); ch=getchar(); fputc( ); fclose(fp); A. fgets B. fopen C. fclose D. fgetc A. c B. fp,c C. fp D. c,fp,本章习题,二、填空题 1. 以下程序由键盘输入

8、一个文件名,然后把从键盘输入的字符依次存放到该文件中,用#作为键盘输入结束的标志。请填空。 #include main() FILE *fp; char ch,fname10; printf(Input the name of file.n); gets(fname); if (fp= )=NULL) printf(Cannot open file.n); exit(0); printf(Enter datan); while (ch=getchar()!=#) fputc( ,fp); fclose(fp); ,本章习题,2. 以下程序中用户由键盘输入一个文件名,然后输入一串字符(用#结束输

9、入)存放到此文件中,形成文本文件,最后将字符的个数写到文件的尾部。请填空。 #include FILE *fp; main() char ch, fname32; int count=0; printf(Input the filename:); scanf(%s,fname); if (fp=fopen( , w+)=NULL) printf(Cant open file: %sn,fname); exit(0); printf(Enter data:n); while (ch=getchar()!=#) fputc(ch,fp); count+; fprintf( ,%dn,count); fclose(fp) ,本章习题,三、编程题 1. 编制程序建立一个文本文件wb.txt,将下列字符串写入该文件:London,Paris,Bon,Rome,Tokyo,Detroit,Moscow,Jerusalim,Bomgey,Beijing,Washington,要求每个字符串占11个字节。然后,读取该文件的各个字符串,并在屏幕上显示出来。 2. 编制程序建立一个学生四、六级英语考试成绩的二进制文件score.dat(未参加考试的成绩标记0)

温馨提示

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

最新文档

评论

0/150

提交评论