资源描述:
《C语言程序设计 教学课件 作者 王曙燕 主编 曹锰 副主编chp11.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、C语言程序设计第十一章文件第11章文件文件概述文件类型的指针文件的打开与关闭文件的顺序读写文件的随机读写出错的检测§11.1文件的概述文件的概念文件(file)是指存储在外存上数据的集合。从操作系统的角度上看,每个与主机相联的输入输出设备都被看作是一个文件。例如:终端键盘是输入文件,显示屏和打印机是输出文件。文件的分类C语言把文件看作是一个字符(字节)序列。根据数据组成的形式,C文件可分为:(1)ASCII文件又称文本(text)文件,它的每一个字节放ASCII代码,代表一个字符。(2)二进制文件,是把内存中的数据按其在内存中的存储形式原样输出到磁盘上存放。C语言程序设
2、计第十一章文件例如:整数10000,在内存中占2个字节,如果按二进制形式存放仍占2个字节,而按ASCII码存放,则占5个字节。0010011100010000内存中形式ASCII码形式便于直接输出字符。但占存储空间多,运算时要花转换时间(二进制与ASCII码间的转换)。用二进制形式,可以节省外存空间和转换时间,但一个字节并不对应一个字符,不能直接输出字符形式。二进制形式00100111000100000011000100110000001100000011000000110000ASCII码形式C语言程序设计第十一章文件C语言程序设计第十一章文件根据文件依附的介质,可分
3、为普通文件和设备文件。根据文件的组织方式,可分为顺序读写文件和随机读写文件。文件的操作流程建立/打开文件。从文件中读数据或向文件中写数据。关闭文件。C语言程序设计第十一章文件§11.2文件类型的指针每个被使用的文件都在内存中开辟一个区,用来存放有关信息。这些信息保存在一个结构体类型变量中,这个结构体类型已在stdio.h头文件中由系统声明了的,取名为FILE(注意是大写)。例如:可以定义FILE类型的数组f,FILEf[5];数组f可以用来存放5个文件的信息。还可以定义文件型指针变量。FILE*fp:fp是指向FILE类型结构体的文件指针变量。通过fp能够找到与它相关的
4、文件,访问该文件。如果有n个文件,一般应该设n个指向FILE类型的指针变量,使它们分别指向n个文件(确切地说指向存放该文件信息的结构体变量)以实现对文件的访问。C语言程序设计第十一章文件§11.3文件的打开与关闭打开文件fopen函数fopen()其调用的一般形式为:文件指针名=fopen(文件名,文件打开方式);如p=fopen(“test.txt”,“r”);它的含义是:打开文件名为test.txt的文件,采用读入的方式,若打开成功,返回指向文件“test.txt”的FILE类型的指针并赋给变量p,从此以后,使用指针p就是使用文件test.txt了。C语言程序设计第
5、十一章文件文件使用方式含义"r""w""a""rb""wb""ab""r+""w+""a+""rb+""wb+""ab+"(只读)(只写)(追加)(只读)(只写)(追加)(读写)(读写)(读写)(读写)(读写)(读写)为输入打开一个文本文件为输出打开一个文本文件向文本文件尾追加数据为输入打开一个二进制文件为输出打开一个二进制文件向二进制文件尾追加数据为读/写打开一个文本文件为读/写建立新的文本文件为读/写打开一个文本文件为读/写打开一个二进制文件为读/写建立新的二进制文件为读/写打开一个二进制文件C语言程序设计第十一章文件说明:(1)用“r”方式打开的文件只能向内存输入
6、数据,不能用“r”方式打开不存在的文件,否则出错。(2)用“w”方式打开的文件只能向该文件写数据不能从该文件读数据,如果原来不存在该文件,则建立新文件,如果原来该文件已存在,则打开时该文件删空重写。(3)用“a”方式打开的文件只能向文件末尾添加数据。该文件必须存在,否则出错。打开时位置指针指向文件末尾。(4)用“r+”,“w+”,“a+”方式打开的文件,既可以输入数据,也可以用来输出数据,用“r+”时该文件应该存在。C语言程序设计第十一章文件(5)若不能实现“打开”,fopen函数返回空指针NILL。如:if((fp=fopen("file1","r"))==NULL)
7、{printf("cannotopenthisfile");exit(0);}先检查“打开”能否实现,若有错就输出"cannot..."。exit(0)函数的作用是关闭所有文件,终止当前过程。(6)在程序开始运行,系统自动打开3个标准文件:标准输入,标准输出,标准出错输出。都不必另外打开。文件的关闭(fclose函数)在使用完一个文件后应该关闭它,以防止丢失数据。“关闭”就是使文件指针变量与该文件“脱钩”,除非再次打开它。用fclose函数关闭文件。调用它的一般形式为:fclose(文件指针);例如:fclose(fp);通过fclo