《程序设计基础-C语言》第9章文件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《《程序设计基础-C语言》第9章文件.ppt》由用户(momomo)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 程序设计基础C语言 程序设计 基础 语言 文件
- 资源描述:
-
1、教学内容教学内容:9.1 文件概述文件概述9.2*文件的打开与关闭文件的打开与关闭9.3*文件的读写操作文件的读写操作9.4*位置指针与文件定位位置指针与文件定位9.5 出错检测出错检测本章要点本章要点本章作业与上机实践本章作业与上机实践9.1 9.1 文件概述文件概述1文件与文件名文件与文件名文件文件是指存放在外部存储介质存储介质上的数据集合数据集合。为标识一个文件,每个文件都必须有一个文件名文件名,其一般结构为:主文件名主文件名.扩展名扩展名 文件命名规则,遵循操作系统操作系统的约定。文件的内容文件的类别2文件分类文件分类(1)根据文件的内容内容:程序程序文件+数据数据文件。(2)根据文件
2、的组织形式组织形式:顺序顺序存取文件+随机随机存取文件。源源文件、目标目标文件+可执行可执行文件(3)在C语言中,根据存储形式分为:ASCIIASCII码码文件:逐个字符字符存储其ASCIIASCII码码。1个字节存储1个字符,因而便于对字符进行逐个处理,所以适合存储文本内容。如果用于存储数值,则一般占用存储空间较多,而且要花费转换时间(ASCII码与二进制之间的转换)。二进制二进制文件:内存内存中的数据,原样输出。用二进制形式存储数值,可以节省存储空间和转换时间;但1个字节并不对应1个字符,不能直接输出字符形式。0110010000000000内存中的存储形式0011000000110000
3、00110001 ASCII码存储形式 (1)(0)(0)01100100二进制存储形式 例如,整数100:ASCII码形式:每位数字占用1B,共3B。二进制形式:1个字节就够用,如下图所示:3读文件与写文件读文件与写文件(1)所谓读读文件是指,将磁盘文件中的数据传送到计算机内存的操作:文件文件(磁盘)内存内存(2)所谓写写文件是指,从计算机内存向磁盘文件中传送数据的操作:内存内存 文件文件(磁盘)4构成文件的基本单元与流式文件构成文件的基本单元与流式文件语言将文件看作是,一个字符字符(ASCII码文件)或字节字节(二进制文件)流,如下图所示:字符n-1字符i字符1字符0读写指针这种文件称为流
4、流式文件。5文件类型文件类型FILE系统给每个打开的文件文件都在内存中开辟一个区域,用于存放文件的有关信息信息(如文件名、文件位置等)。这些信息保存在一个FILE结构类型的变量(由系统定义)中。返回返回必须大写9.29.2*文件的打开与关闭文件的打开与关闭对文件进行操作之前,必须先打开该文件;使用结束后,应立即关闭,以免数据丢失。9.2.1*文件的打开文件的打开fopen()函数函数1用法:FILE *fopen(文件名文件名,操作方式操作方式);2功能:返回一个指向文件的指针。3函数原型:stdio.h。对文件操作的库函数,函数原型均在该头文件中。(1)“文件名”是指要打开(或创建)的文件名
5、。如果使用字符数组数组(或指针或指针),则无需双引号。如果文件不在搜索路径搜索路径下,则必须使用全称全称。(2)“操作方式”如下表所示:带绝对路径打开目的ASCII码文件二进制二进制文件备 注只读(输入)rrb文件已经存在只写(输出)wwb有则删无则建向文件尾追加数据aab文件已经存在读/写文件r+a+rb+ab+文件已经存在创建新文件w+wb+有则删无则建(3)如果打开操作失败失败,则fopen()函数返回一个空空指针指针NULL(其值在头文件stdio.h中被定义为)。为增强程序可靠性,常用如下方法打开一个文件:if(fp=fopen(文件名文件名,操作方式操作方式)=NULL)print
6、f(can not open this filen);exit(0);关闭所有打开的文件,结束程序运行。9.2.2 文件的关闭文件的关闭fcolse()函数函数1用法:int fclose(FILE *文件指针文件指针);2功能:关闭“文件指针”所指向的文件。3函数返回值:正常关闭,返回值为;否则,返回值为非。例如,fclose(fp);/*关闭fp所指向的文件*/返回返回9.39.3*文件的读文件的读/写操作写操作文件打开之后,就可以对它进行读/写操作了。9.3.1 读写一个字符读写一个字符9.3.2 读写一个字符串读写一个字符串9.3.3 读写一个数据块读写一个数据块9.3.4 格式化读写
7、格式化读写9.3.5 读写函数的选用原则读写函数的选用原则返回返回9.3.1 9.3.1 读写一个字符读写一个字符1写写1个字符到文件中个字符到文件中fputc()函数函数例例9.19.1 从键盘上输入一个字符串(以“”作为结束字符),以ASCII码形式存储到一个磁盘文件diskfile.txt中。#include stdio.h#include conio.hvoid main()FILE*fp;char ch;if(fp=fopen(diskfile.txt,w)=NULL)printf(can not open this file,press any key to exit.);getc
8、h();exit(0);/*输入字符,并存储到指定文件中*/for(;(ch=getchar()!=;)fputc(ch,fp);fclose(fp);Next必须大写 库函数库函数fputc()(1)用法:int fputcfputc(字符数据字符数据,文件指针文件指针);(2)功能:将字符数据写到指定文件中,并将读读/写位置指针写位置指针向前移动1个字节(即指向下一个写入位置)。(3)返回值:输出成功,返回输出的字符数据;输出失败,返回一个符号常量EOF(其值在头文件stdio.h中,被定义为-1)。返回程序常量常量/变量变量注:所有读写函数均自动自动调整该 指针,到下一个读写位置。2从文
9、件中读从文件中读1个字符个字符fgetc()和和feof()函数函数例例9.2 顺序显示例例9.1创建的磁盘文件diskfile.txt。#include stdio.h#include conio.hvoid main()FILE*fp;char ch;if(fp=fopen(diskfile.txt,r)=NULL)printf(can not open source file,press any key to exit.);getch();exit(0);for(;(ch=fgetc(fp)!=EOF;)putchar(ch);fclose(fp);getch();Next 库函数库函数
10、fgetc()(1)用法:int fgetcfgetc(文件指针文件指针 );(2)功能:从指定文件中读1个字符,并将读写位置指针向前移动1个字节。该函数无出错返回值。例如:ch=fgetc(fp);返回程序 符号常量符号常量EOF 在对ASCIIASCII码文件码文件执行读读入操作时,如果遇到文文件尾件尾,则返回一个文件结束标志EOFEOF(其值在头文件stdio.h中被定义为-1)。End Of File,只适用于ASCII码文件 库函数库函数feof()(1)用法:int feoffeof(文件指针文件指针 );(2)功能:在执行读读文件操作时,如果遇到文件文件尾尾,则函数返回逻辑真真(
11、1);否则,则返回逻辑假假(0)。feof()函数同时适用于ASCII码文件和二进制文件二进制文件(只能使用该函数,不能使用EOFEOF)。返回程序 例例9.3 设计一个程序:实现制作任意1个ASCII码文件的副本(文件名由用户任意指定)。算法设计要点:(1)制作副本可以有两种方法:一种是使用带参主函数;另一种是在程序运行时,提示用户输入文件名。本例采用第一种方法。(2)首先校验参数个数,然后依次打开、并校验源文件和目标文件,如果校验均通过,则进行复制操作。/*使用格式:可执行文件名可执行文件名 源文件名源文件名 目标文件名目标文件名*/#include stdio.h#include con
12、io.hvoid main(int argc,char*argv)FILE*input,*output;char ch;if(argc!=3)printf(参数个数不对n);printf(n Usage:可执行文件名 source-file dest-file);exit(0);源文件指针目标文件指针 if(input=fopen(argv1,r)=NULL)/*打开源文件失败*/printf(can not open source filen);exit(0);if(output=fopen(argv2,w)=NULL)/*创建目标文件失败*/printf(can not create de
展开阅读全文