c语言教程 (13).ppt
《c语言教程 (13).ppt》由会员分享,可在线阅读,更多相关《c语言教程 (13).ppt(32页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第十三章第十三章文文 件件江苏大学计算机学院计算机科学系2教学要求、重点与难点教学要求、重点与难点要求要求1、掌握文件读操作/写操作;2、掌握运用有关函数进行文件操作程序的设计。重点与难点重点与难点1、掌握文件读操作/写操作;、文件打开、读/写以及关闭函数的介绍;2、文件的应用;23内内 容容1C文件概述2文件型指针3文件打开与关闭4 文件的读写5文件的定位6出错的检测 本章作业 本章小结3413.1C文件概述文件概述文件:存储在外部介质上数据的集合。操作系统是以文件位单位对数据进行管理的。一、C语言文件类型 C语言将文件看作是一个字符(字节)序列组成的数据流,根据数据的组织形式分为文本文件(
2、ASCII、text)和二进制文件(binary)两类。文本文件中的每一个字节存放一个ASCII码,代表一个字符。二进制文件则是将数据按内存中的原样(二进制形式)存放在磁盘上。例如有一个十进制整数54321,它在内存中占两个字节,如图,如果将它输出到文本文件则占5个字节,输出到二进制文件占2个字节。4513.1C文件概述文件概述 文本文件和二进制文件各有特点,二进制文件占存储空间较小,而文本文件更直观,可以用Winows中的记事本程序或DOS中的TYPE命令直接查看。5613.1C文件概述文件概述二、对文件的处理方法:程序数据区输出缓冲区输入缓冲区内存文 件内存 缓冲文件系统和非缓冲文件系统。
3、下图是缓冲文件系统对文件的处理过程:67 13.2文件型指针文件型指针FILE由系统定义,一般保存在stdio.h文件中。Turbo C中FILE定义如下:/*Definition of the control structure for streams */typedef struct short level;/*fill/empty level of buffer*/unsigned flags;/*File status flags */char fd;/*File descriptor */unsigned char hold;/*Ungetc char if no buffer*/s
4、hort bsize;/*Buffer size */unsigned char *buffer;/*Data transfer buffer*/unsigned char *curp;/*Current active pointer*/unsigned istemp;/*Temporary file indicator*/short token;/*Used for validity checking*/FILE;/*This is the FILE object*/系统要为每个操作的文件在内存开辟一个缓冲区,用来存放文件的有关信息。这些信息存放在一个取名为FILE的文件结构体类型变量中。7
5、813.2文件型指针文件型指针 在C语言中,对已打开的文件进行输入、输出处理都是通过指向该文件的文件指针变量进行的。因此,只需定义一个FILE类型的指针变量,通过该指针变量 调用有关文件操作函数对指定文件进行操作。定义文件变量指针形式为:FILE *文件类型指针变量名;例如:FILE *fp;如:FILE *fp;fp=fopen(“student.dat”,”r”);文件操作步骤:1、用fopen函数打开文件;2、对文件进行读、写操作;3、用fclose函数及时关闭文件。8913.3文件打开与关闭文件打开与关闭 对一个文件的操作以前,必须首先打开该文件,使系统分配文件缓冲区,当文件操作结束后
6、,关闭文件,收回分配的缓冲区。一、文件的打开:(fopen函数)fopen 函数的调用方式为:例如:FILE*fp;fp=(“a1”,“r”);/*打开文件名为a1的文件以便读*/FILE*fphzk;fphzk=(“c:hzk16”,“rb”);/*打开二进制文件以便读*/FILE*fp;fp=fopen(文件名,使用文件方式);fopen函数打开外部文件名,并返回指向文件的指针。fopen函数的原型为:FILE *fopen(char*filename,char*mode);910文件使用方式 意 义 “r”只读 打开一个文本文件,只允许读数据 “w”只写 打开或建立一个文本文件,只允许写
7、数据 “a”追加 打开一个文本文件,并在文件末尾写数据 “rb”只读 打开一个二进制文件,只允许读数据 “wb”只写 打开或建立一个二进制文件,只允许写数据 “ab”追加 打开一个二进制文件,并在文件末尾写数据 “r+”读写 打开一个文本文件,允许读和写 “w+”读写 打开或建立一个文本文件,允许读写 “a+”读写 打开一个文本文件,允许读,或在文件末追加数据 “rb+”读写 打开一个二进制文件,允许读和写 “wb+”读写 打开或建立一个二进制文件,允许读和写 “ab+”读写 打开一个二进制文件,允许读,或在文件末追加数据13.3文件打开与关闭文件打开与关闭101113.3文件打开与关闭文件打
8、开与关闭说 明1.使用“r”和”r+”时,文件应已经存在。2.使用“w”和”w+”时,新建一个文件,若磁盘上已有同名文件,则被清除。3.使用“a”和”a+”时,文件应已经存在,原有内容不被删除,位置指针移到数据末尾,可以添加内容。4.在读文本文件时,遇到回车符(r=13)换行符(n=10),自动转换成一个换行符;写时,反过来,将一个换行符转换成一个回车符和一个换行符(为了可以使用TYPE命令显示其内容)。读写二进制文件则无此转换。5.在程序开始运行时,系统自动打开三个文件:标准输入设备(键盘)、标准输出设备(显示器)和标准错误输出设备(通常也是显示器),与之对应的文件指针为stdin、stdo
9、ut和stderr。111213.3文件打开与关闭文件打开与关闭如果打不开文件(原因很多),fopen会返回空指针NULL。因此我们常用下面的方法打开文件:if(fp=fopen(“文件名”,“使用方式”)=NULL)printf(“无法打开此文件!n”);exit(0);/*关闭所有文件,终止此程序。*/二、文件的关闭:(fclose函数)fclose 函数的调用方式为 fclose(文件指针);(其原型为:int fclose(FILE*fp);)fclose返回0,正常;非0,出错。关闭文件,释放系统为该文件分配的缓冲区,使得文件指针与指向的文件断开。121313.3文件打开与关闭文件打
10、开与关闭 因此对文件的一般使用方法如下:FILE *fp;/*定义文件指针*/*打开文件*/if(fp=fopen(“文件名”,“使用方式”)=NULL)printf(“无法打开此文件!n”);exit(0);/*对文件进行读写操作*/fclose(fp);/*关闭文件*/*关闭所有文件,终止此程序。*/131413.4文件的读写文件的读写由特殊 一般标准文件 通用文件 punchar fputc getchar fgetc printf fprintf scanf fscanf一、fputc、fgetc函数(putc和getc函数)1、fputc函数:写一个字符到文件。一般形式为:int f
11、putc(int ch,FILE*fp);ch 是要输出的字符,它可以是一个字符常量,也可以是一个字符变量。若操作失败则返回EOF(-1),还可根据ferror函数进一步判断。作用:将一个字符ch的值写入fp所指向的文本文件中。fp 是文件指针变量,它从 fopen函数得到返回值。141513.4文件的读写文件的读写 2、fgetc函数:从文件中读一个字符。一般形式为:ch=fgetc(fp);(原型为:int fgetc(FILE*fp);)fp是文件指针变量,ch是字符变量。遇文件结束返回 EOF例:从文件读字符并显示ch=fgetc(fp);while(ch!=EOF)putchar(c
12、h);ch=fgetc(fp);151613.4文件的读写文件的读写例13-1 从键盘输入一些字符,逐个把它们送到磁盘上去,直到输入一个“#”为止.ch=getchar();while(ch!=#)put(ch,fp);putchar(ch);ch=getchar();fclose(fp);#include stdio.hmain()FILE*fp;char ch,filename10;scanf(%s,filename);if(fp=fopen(filename,w)=NULL)printf(cannot open filen);exit(0);161713.4文件的读写文件的读写例13-2
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c语言教程 13 语言 教程 13
限制150内