资源描述:
《C语言程序设计 教学课件 作者 王玉 主编第11章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第11章文件本章主要内容11.1文件概述11.2文件的打开与关闭11.3文件的顺序读写11.4文件的定位与随机读写11.5文件检测函数11.6程序举例与分析11.1文件概述11.1.1文件的分类11.1.2文件类型指针11.1.1文件的分类可以从不同的角度对文件进行分类:①从用户的角度看,文件可分为普通文件和设备文件两种。②从文件编码的方式来看,文件可分为ASCII码文件和二进制码文件两种。③按文件所依附的介质来分:有磁盘文件、磁带文件、内存文件、设备文件等。④根据文件的内容,可分为程序文件和数据文
2、件,程序文件又可分为源文件、目标文件和可执行文件。⑤根据文件的组织形式,可分为顺序存取文件和随机存取文件。⑥按照操作系统对磁盘文件的读写方式,文件可以分为“缓冲文件系统”和“非缓冲文件系统”。11.1.2文件类型指针在C语言中用一个指针变量指向一个文件,这个指针称为文件类型指针,简称文件指针。定义说明文件指针的一般形式为:FILE*指针变量标识符;其中FILE应为大写,它实际上是由系统定义的一个结构,该结构中含有文件名、文件状态和文件当前位置等信息。在编写源程序时不必关心FILE结构的细节。注意:只
3、有通过文件指针,才能调用相应的文件。11.2文件的打开与关闭11.2.1文件打开——fopen()函数11.2.2文件关闭——fclose()函数11.2.1文件打开——fopen()函数格式:FILE*fopen(“文件名”“使用文件方式”,);功能:返回一个指向指定文件的指针。“文件指针名”必须是被说明为FILE类型的指针变量;说明:①函数中“文件名”是被打开文件的文件名,是字符串常量或字符串数组。②“使用文件方式”是指文件的类型和操作要求。③如果不能实现打开指定文件的操作,则fopen()函数
4、返回一个空指针NULL(其值在头文件stdio.h中被定义为0)。④关于exit()函数:格式:voidexit([程序状态值]);功能:关闭已打开的所有文件,结束程序运行,返回操作系统,并将“程序状态值”返回给操作系统。⑤把一个文本文件读入内存时,要将ASCII码转换成二进制码,而把文件以文本方式写入磁盘时,也要把二进制码转换成ASCII码。⑥标准输入文件(键盘),标准输出文件(显示器),标准出错输出(出错信息)是由系统打开的,可直接使用。11.2.2文件关闭——fclose()函数格式:intf
5、close(FILE*文件指针);功能:关闭“文件指针”所指向的文件。如果正常关闭了文件,则函数返回值为0;否则,返回值为非0,表示有错误。11.3文件的顺序读写11.3.1文件的字符输入和输出——fgetc和fputc函数11.3.2文件的字符串输入和输出——fgets和fputs函数11.3.3文件的数据块输入和输出——fread和fwrite函数11.3.4文件的格式化输入和输出——fscanf和fprintf函数11.3.1文件的字符输入和输出——fgetc和fputc函数1.fgetc函数
6、格式intfgetc(FILE*fp):从文件fp中读一个字符,返回读得的字符。对于文本文件,遇文件尾时返回EOF。对于二进制文件,用feof(fp)判别是否遇文件尾。feof(fp)=1说明遇文件尾。对于fgetc函数的使用有以下几点说明:①在fgetc函数调用中,读取的文件必须是以读或读写方式打开的。②读取字符的结果也可以不向字符变量赋值。③可连续多次使用fgetc函数,读取多个字符。2.fputc()函数格式fputc函数功能:将字符数据输出到“文件指针”所指向的文件中去,同时将读写位置指针向
7、后移动1个字节(即指向下一个写入位置)。函数调用的形式为intfputc(intc,FILE*fp);或fputc(字符量,文件指针);其中,待写入的字符量可以是字符常量或变量。对于使用fputc函数的说明:①被写入的文件可以用写、读写,追加方式打开,用写或读写方式打开一个已存在的文件时,将清除原有的文件内容,写入字符从文件首开始。②每写入一个字符,文件内部位置指针向后移动一个字节。③fputc函数有一个返回值,如写入成功则返回写入的字符,否则返回一个EOF。11.3.2文件的字符串输入和输出——f
8、gets和fputs函数1.fgets函数格式fgets(字符数组名,n,文件指针);其中的n是一个正整数,表示从文件中读出的字符串不超过n-1个字符,在读入的最后一个字符后加上串结束标志′ ′。功能:从文件指针所指向的文件中读取n-1个字符的字符串,并把它放到字符数组中。对fgets函数有两点说明:①在读出n-1个字符之前,如遇到了换行符或EOF,则读出结束。②fgets函数也有返回值,其返回值是字符数组的首地址。如读到文件尾或出错时,函数返回null。2.fpu