欢迎来到天天文库
浏览记录
ID:55835510
大小:44.50 KB
页数:25页
时间:2020-06-09
《《在程序运行时》PPT课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第13章文件在程序运行时,程序本身和数据一般都存放在内存中。当程序运行结束后,存放在内存中的数据被释放。如果需要长期保存程序运行所需的原始数据,或程序运行产生的结果,就必须以文件形式存储到外部存储介质上。13.1C文件概述13.2文件类型指针13.3文件的打开与关闭13.4文件的读写13.5文件定位13.6出错的检测13.1C文件概述1.文件与文件名文件是指存放在外部存储介质上的数据集合。为标识一个文件,每个文件都必须有一个文件名,其一般结构为:主文件名[.扩展名]文件命名规则,遵循操作系统的约定。2.文件分类可以从不同的角度对文件进行分类:(1)根据文件的内容,可分为程序文件和数据文件,
2、程序文件又可分为源文件、目标文件和可执行文件。(2)根据文件的组织形式,可分为顺序存取文件和随机存取文件。(3)根据文件的存储形式,可分为ASCII码文件和二进制文件。ASCII码文件的每1个字节存储1个字符,因而便于对字符进行逐个处理。但一般占用存储空间较多,而且要花费转换时间(二进制与ASCII码之间的转换)。二进制文件是把内存中的数据,原样输出到磁盘文件中。可以节省存储空间和转换时间,但1个字节并不对应1个字符,不能直接输出字符形式。3.读文件与写文件所谓读文件是指,将磁盘文件中的数据传送到计算机内存的操作。所谓写文件是指,从计算机内存向磁盘文件中传送数据的操作。4.构成文件的基本单
3、元与流式文件C语言将文件看作是由一个一个的字符(ASCII码文件)或字节(二进制文件)组成的。将这种文件称为流式文件。而在其它高级语言中,组成文件的基本单位是记录,对文件操作的基本单位也是记录。5.ANSIC的缓冲文件系统所谓缓冲文件系统是指,系统自动地在内存区为每个正在使用的文件开辟一个缓冲区。从内存向磁盘输出数据时,必须首先输出到缓冲区中。待缓冲区装满后,再一起输出到磁盘文件中。从磁盘文件向内存读入数据时,则正好相反:首先将一批数据读入到缓冲区中,再从缓冲区中将数据逐个送到程序数据区。13.2文件类型指针文件类型FILE系统给每个打开的文件都在内存中开辟一个区域,用于存放文件的有关信息
4、(如文件名、文件位置等)。这些信息保存在一个结构类型变量中,该结构类型由系统定义、取名为FILE。注意:结构类型名“FILE”必须大写。利用文件类型定义文件类型指针变量,文件的操作可以通过文件类型指针变量进行。文件类型指针变量的定义方法为:FILE *指针变量名;13.3文件的打开与关闭对文件进行操作之前,必须先打开该文件;使用结束后,应立即关闭,以免数据丢失。C语言规定了标准输入输出函数库,用fopen()函数打开一个文件,用fclose()函数关闭一个文件。13.3.1文件的打开──fopen()函数1.用法:FILE*fopen("文件名","操作方式");2.功能:返回一个指向指
5、定文件的指针。3.函数原型:stdio.h。注:对文件操作的库函数,函数原型均在头文件stdio.h中。后续函数不再赘述。(1)“文件名”是指要打开(或创建)的文件名。如果使用字符数组(或字符指针),则不使用双引号。(2)“操作方式”如表13.1所示。例如,FILE*fp;fp=fopen("data.99","r");3.说明(1)以“r”方式打开的文件只能读不能写,(2)以“w”方式打开的文件只能写不能读。(3)“r(b)+”与“a(b)+”的区别:使用前者打开文件时,读写位置指针指向文件头;使用后者时,读写指针指向文件尾。(4)以“r+”,“w+”,“a+”方式打开的文件则可读可写。
6、(5)如果不能实现打开指定文件的操作,则fopen()函数返回一个空指针NULL(其值在头文件stdio.h中被定义为0)。为增强程序的可靠性,常用下面的方法打开一个文件:if((fp=fopen("文件名","操作方式"))==NULL){printf("cannotopenthisfile");exit(0);}(6)有些C编译系统,可能并不完全提供上述对文件的操作方式,或采用的表示符号不同,请注意所使用系统的规定。(7)使用文本文件向计算机系统输入数据时,系统自动将回车换行符转换成一个换行符;在输出时,将换行符转换成回车和换行两个字符。使用二进制文件时,内存中的数据形式与数据文件
7、中的形式完全一样,就不再进行转换。(8)在程序开始运行时,系统自动打开三个标准文件,并分别定义了文件指针:1)标准输入文件——stdin:指向终端输入(一般为键盘)。如果程序中指定要从stdin所指的文件输入数据,就是从终端键盘上输入数据。2)标准输出文件——stdout:指向终端输出(一般为显示器)。3)标准错误文件——stderr:指向终端标准错误输出(一般为显示器)。13.3.3文件的关闭──fcolse()函数1
此文档下载收益归作者所有