第7章处理程序设计.ppt
《第7章处理程序设计.ppt》由会员分享,可在线阅读,更多相关《第7章处理程序设计.ppt(82页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第第第7 77 7章章章章 文件处理程序设计文件处理程序设计文件处理程序设计文件处理程序设计主讲:甘玲主讲:甘玲本章内容本章内容如何将一个文件复制到另一个文件如何将一个文件复制到另一个文件1如何读取某个客户的银行帐号信息如何读取某个客户的银行帐号信息2n文件的打开和关闭文件的打开和关闭n出错检查出错检查n文件的顺序读写文件的顺序读写n文件定位文件定位n文件的随机读写文件的随机读写2023/1/222解析解析C程序设计第程序设计第7章章 文件处理程序设计文件处理程序设计3提出问题提出问题v如何将一个文件的内容复制到另一个文件如何将一个文件的内容复制到另一个文件中?中?2023/1/22解析解析
2、C程序设计第程序设计第7章章 文件处理程序设计文件处理程序设计问题的分析问题的分析v前面程序处理的数据要么是直接写在程序前面程序处理的数据要么是直接写在程序中,要么是在程序运行时由键盘输入,而中,要么是在程序运行时由键盘输入,而程序的处理结果只在屏幕上显示。当程序程序的处理结果只在屏幕上显示。当程序要处理大量数据时,这种数据处理方式就要处理大量数据时,这种数据处理方式就会带来诸多不便。会带来诸多不便。2023/1/224解析解析C程序设计第程序设计第7章章 文件处理程序设计文件处理程序设计问题的分析问题的分析v操作系统是以文件为单位对数据进行管理操作系统是以文件为单位对数据进行管理的,如果要找
3、外存上的数据,必须先按文的,如果要找外存上的数据,必须先按文件名找到指定的文件,然后再从该文件中件名找到指定的文件,然后再从该文件中读取数据;如果要向外部介质上存储数据读取数据;如果要向外部介质上存储数据也必须先建立一个文件才能向它输出数据。也必须先建立一个文件才能向它输出数据。v文件中最常见的操作就是将一个文件中的文件中最常见的操作就是将一个文件中的内容复制到另一个文件中去。哪么文件是内容复制到另一个文件中去。哪么文件是什么呢?什么呢?2023/1/225解析解析C程序设计第程序设计第7章章 文件处理程序设计文件处理程序设计文件是什么?文件是什么?v所谓所谓“文件文件”一般指存储在介质上的数
4、据一般指存储在介质上的数据的集合。的集合。v在在C语言中,文件就是由一个一个的字符或语言中,文件就是由一个一个的字符或字节的数据顺序组成的字符或字节序列。字节的数据顺序组成的字符或字节序列。v换句话说,换句话说,C语言把文件看作是一个有序的语言把文件看作是一个有序的字节流。字节流。2023/1/226解析解析C程序设计第程序设计第7章章 文件处理程序设计文件处理程序设计vC语言对文件的存取是以字节为单位的,也语言对文件的存取是以字节为单位的,也就意味着以字符形式进行操作。就意味着以字符形式进行操作。v每一个文件通常以文件结束标志(每一个文件通常以文件结束标志(end-of-file,也就是,也
5、就是EOF)结束,)结束,2023/1/227解析解析C程序设计第程序设计第7章章 文件处理程序设计文件处理程序设计文件的分类文件的分类从用户的角度从用户的角度文件分为文件分为标准设备文件普通磁盘文件从文件编码方式从文件编码方式文件分为文件分为ASCII文件二进制文件2023/1/228解析解析C程序设计第程序设计第7章章 文件处理程序设计文件处理程序设计文件的分类文件的分类 v从用户的角度分文件分为从用户的角度分文件分为标准设备文件标准设备文件普通磁盘文件普通磁盘文件v把外部设备也看作是一个文件来进行管理,把外部设备也看作是一个文件来进行管理,把它们的输入、输出等同于对磁盘文件的把它们的输入
6、、输出等同于对磁盘文件的读和写。读和写。2023/1/229解析解析C程序设计第程序设计第7章章 文件处理程序设计文件处理程序设计v键盘为标准的输入文件,文件指针为键盘为标准的输入文件,文件指针为stdinstdin。从键盘上输入就意味着从标准输入文件上从键盘上输入就意味着从标准输入文件上输入数据。如输入数据。如scanfscanf、getchargetchar函数。函数。v显示器为标准输出文件,文件指针为显示器为标准输出文件,文件指针为stdoutstdout。在屏幕上显示有关信息就是向标。在屏幕上显示有关信息就是向标准输出文件输出。如准输出文件输出。如printfprintf、putcha
7、rputchar函数。函数。v标准错误输出也是标准设备文件,文件指标准错误输出也是标准设备文件,文件指针为针为stderrstderr。2023/1/2210解析解析C程序设计第程序设计第7章章 文件处理程序设计文件处理程序设计v本章所讲的文件主要是针对普通的磁盘文件。本章所讲的文件主要是针对普通的磁盘文件。2023/1/2211解析解析C程序设计第程序设计第7章章 文件处理程序设计文件处理程序设计文件的分类文件的分类v从文件编码的方式分从文件编码的方式分:ASCIIASCII码文件。码文件。在磁在磁盘盘中存放中存放时时每个字符每个字符对应对应一个字一个字节节,用于存放,用于存放对应对应的的A
8、SCIIASCII码码。二进制文件。数据按其在内存中的存储形式原二进制文件。数据按其在内存中的存储形式原样存放。样存放。2023/1/2212解析解析C程序设计第程序设计第7章章 文件处理程序设计文件处理程序设计vASCII文件也称文本文件。文件也称文本文件。vASCII文件在磁盘中存放时,每个字符对文件在磁盘中存放时,每个字符对应一个字节,用于应一个字节,用于存放对应的存放对应的ASCII码码。如:整型十进制数如:整型十进制数5678,按,按ASCII文件文件存放则需要占用存放则需要占用4个字节。个字节。2023/1/2213解析解析C程序设计第程序设计第7章章 文件处理程序设计文件处理程序
9、设计v二进制文件:是对不同的数据类型,按其二进制文件:是对不同的数据类型,按其实际占用内存字节数实际占用内存字节数存放。即内存的存储存放。即内存的存储形式,原样输出到磁盘上存放。如:整型形式,原样输出到磁盘上存放。如:整型十进制数十进制数5678,按二进制文件存放只需,按二进制文件存放只需要要2个字节。个字节。2023/1/2214解析解析C程序设计第程序设计第7章章 文件处理程序设计文件处理程序设计0010111000010110001011100001011000110110001101010011100000110111ASCII形式形式二进制形式二进制形式内存中的内存中的存储形式存储形
10、式2023/1/2215解析解析C程序设计第程序设计第7章章 文件处理程序设计文件处理程序设计v例如:十进制整数例如:十进制整数1234512345的存储形式如图的存储形式如图7-7-2 2所示。按所示。按ASCIIASCII码形式存储共占用码形式存储共占用5 5个字节,个字节,而采用二进制形式存储只需要而采用二进制形式存储只需要2 2个字节。个字节。2023/1/2216解析解析C程序设计第程序设计第7章章 文件处理程序设计文件处理程序设计 内存存储形式内存存储形式 二进制文件形式二进制文件形式 00110000 00111001 00110000 00111001 图图7-2 7-2 两种
11、文件形式与内存形式之间关系两种文件形式与内存形式之间关系 1的的ASCII 2(50)3(51)4(52)5(53)码为码为(49)ASCII文件(文本文件)形式文件(文本文件)形式 00110010 00110011 00110100 00110101 001100012023/1/2217解析解析C程序设计第程序设计第7章章 文件处理程序设计文件处理程序设计vASCIIASCII码文件可在屏幕上按字符显示,例如码文件可在屏幕上按字符显示,例如源程序文件就是源程序文件就是ASCIIASCII文件,用文件,用DOSDOS命令命令TYPETYPE可显示文件的内容。可显示文件的内容。v由于是按字符
12、显示,因此由于是按字符显示,因此能读懂能读懂文件内容。文件内容。占用占用存储空间大存储空间大,在进行读、写操作时要,在进行读、写操作时要进行二进制与十进制之间的相互进行二进制与十进制之间的相互转换转换,效效率低率低。2023/1/2218解析解析C程序设计第程序设计第7章章 文件处理程序设计文件处理程序设计v二进制文件虽然也可在屏幕上显示,但其二进制文件虽然也可在屏幕上显示,但其内容内容无法读懂无法读懂。但二进制文件占用。但二进制文件占用存储空存储空间少间少,在进行读、写操作时,在进行读、写操作时不不用进行二进用进行二进制与十进制之间的相互制与十进制之间的相互转换转换,效率高效率高。2023/
13、1/2219解析解析C程序设计第程序设计第7章章 文件处理程序设计文件处理程序设计文件系统文件系统 v根据操作系统对文件的处理方式的不同,根据操作系统对文件的处理方式的不同,把文件系统分为把文件系统分为缓冲文件系统缓冲文件系统非缓冲文件系统非缓冲文件系统vANSI C标准采用缓冲文件系统。标准采用缓冲文件系统。2023/1/2220解析解析C程序设计第程序设计第7章章 文件处理程序设计文件处理程序设计缓冲文件系统缓冲文件系统v缓冲文件系统是指操作系统在内存中为每缓冲文件系统是指操作系统在内存中为每一个正在使用的文件开辟一个读写缓冲区。一个正在使用的文件开辟一个读写缓冲区。如图如图7-1所示。所
14、示。2023/1/2221解析解析C程序设计第程序设计第7章章 文件处理程序设计文件处理程序设计 图图 7-1 缓冲文件系统示意图缓冲文件系统示意图 内内 存存 输出输出 (写写)输入输入(读读)外存外存 输出缓冲区输出缓冲区 文件文件 输输 入入 输入缓冲区输入缓冲区 程序数据区程序数据区 输出输出 2023/1/2222解析解析C程序设计第程序设计第7章章 文件处理程序设计文件处理程序设计v在输入数据时,先把数据从磁盘读到在输入数据时,先把数据从磁盘读到“输输入缓冲区入缓冲区”,等输入缓冲区已满或强制把,等输入缓冲区已满或强制把它清空时再把其中的数据送到程序数据区它清空时再把其中的数据送到
15、程序数据区进行处理。进行处理。v处理完后的数据要送到文件中保存,先放处理完后的数据要送到文件中保存,先放到到“输出文件缓冲区输出文件缓冲区”,等输出缓冲区已,等输出缓冲区已满或强制把它清空时再把其中的数据送到满或强制把它清空时再把其中的数据送到磁盘文件。磁盘文件。2023/1/2223解析解析C程序设计第程序设计第7章章 文件处理程序设计文件处理程序设计非缓冲文件系统非缓冲文件系统v非缓冲文件系统指系统不自动开辟确定大非缓冲文件系统指系统不自动开辟确定大小的内存缓冲区,而是由程序自己为每个小的内存缓冲区,而是由程序自己为每个文件设定缓冲区。文件设定缓冲区。2023/1/2224解析解析C程序设
16、计第程序设计第7章章 文件处理程序设计文件处理程序设计v在在C语言中,没有专门的文件输入输出语句,语言中,没有专门的文件输入输出语句,对文件的读写都是用库函数来实现的。对文件的读写都是用库函数来实现的。v基本的文件操作都在标准基本的文件操作都在标准I/O库接口库接口stdio.h中。中。2023/1/2225解析解析C程序设计第程序设计第7章章 文件处理程序设计文件处理程序设计v调用磁盘上的一个文件时,必须知道与该调用磁盘上的一个文件时,必须知道与该文件有关的信息。比如文件名字、文件的文件有关的信息。比如文件名字、文件的当前读写位置、文件缓冲区大小与位置、当前读写位置、文件缓冲区大小与位置、文
17、件的操作方式等。这些信息被文件的操作方式等。这些信息被C C语言系统语言系统保存在一个称作保存在一个称作FILEFILE的结构体的结构体中,通常它中,通常它被放在被放在stdio.hstdio.h头文件内。头文件内。2023/1/2226解析解析C程序设计第程序设计第7章章 文件处理程序设计文件处理程序设计typedef structtypedef struct int level;/*int level;/*缓冲区缓冲区“满满”或或“空空”的程度的程度*/unsigned flags;/*unsigned flags;/*文件状态标志文件状态标志*/char fd;/*char fd;/*文
18、件描述符文件描述符*/unsigned char hold;/*unsigned char hold;/*如无缓冲区不读取字符如无缓冲区不读取字符*/int bsize;/*int bsize;/*缓冲区大小缓冲区大小*/unsigned char*buffer;/*unsigned char*buffer;/*数据缓冲区位置数据缓冲区位置*/unsigned char*curp;/*unsigned char*curp;/*文件定位指针文件定位指针*/unsigned istemp;/*unsigned istemp;/*临时文件指示器临时文件指示器*/short token;/*short
19、 token;/*用于有效性检查用于有效性检查*/FILE;FILE;2023/1/2227解析解析C程序设计第程序设计第7章章 文件处理程序设计文件处理程序设计文件指针v对于每一个要操作的文件,都必须定义一对于每一个要操作的文件,都必须定义一个指针变量,并使它指向该文件结构体变个指针变量,并使它指向该文件结构体变量,这个指针称为量,这个指针称为文件指针文件指针。v通过文件指针找到被操作文件的描述信息,通过文件指针找到被操作文件的描述信息,就可对它所指的文件进行各种操作。就可对它所指的文件进行各种操作。FILE*FILE*指指针变针变量量标识标识符;符;v其中其中FILEFILE应为应为大写。
20、大写。2023/1/2228解析解析C程序设计第程序设计第7章章 文件处理程序设计文件处理程序设计文件的操作文件的操作v对文件的操作的一般步骤包括对文件的操作的一般步骤包括:打开文件打开文件文件的读写文件的读写关闭文件关闭文件v在语言中,文件操作都是由在语言中,文件操作都是由库函数库函数来完来完成的。这些库函数包含在成的。这些库函数包含在stdio.h头文件头文件中。中。2023/1/2229解析解析C程序设计第程序设计第7章章 文件处理程序设计文件处理程序设计文件的打开与关闭文件的打开与关闭 v打开文件打开文件是建立文件的各种有关信息,并是建立文件的各种有关信息,并使文件指针指向该文件,以便
21、进行其它各使文件指针指向该文件,以便进行其它各种操作。种操作。v关闭文件关闭文件是断开指针与文件之间的联系,是断开指针与文件之间的联系,禁止再对该文件进行操作。禁止再对该文件进行操作。2023/1/2230解析解析C程序设计第程序设计第7章章 文件处理程序设计文件处理程序设计文件的打开文件的打开 文件指针名文件指针名=fopen(文件名文件名,使用文件方式使用文件方式);如:如:FILE*fp1;fp1=fopen(c:tttest.exe,rb);v其意义是打开其意义是打开C驱动器磁盘的驱动器磁盘的tt目录下的文件目录下的文件test.exe,这是一个二进制文件,只允许按二,这是一个二进制文
22、件,只允许按二进制方式进行读操作。两个反斜线进制方式进行读操作。两个反斜线“”中的第中的第一个表示转义字符,第二个表示根目录。一个表示转义字符,第二个表示根目录。2023/1/2231解析解析C程序设计第程序设计第7章章 文件处理程序设计文件处理程序设计文件的打开文件的打开v文件的打开使用函数文件的打开使用函数fopen(),函数原型,函数原型为:为:FILE*fopen(char*filename,char*type);vfilename为需要打开的文件名,为需要打开的文件名,type为为文件打开的类型,也是一个字符串,用于文件打开的类型,也是一个字符串,用于确定文件的使用方式,可以选用的方
23、式如确定文件的使用方式,可以选用的方式如下:下:2023/1/2232解析解析C程序设计第程序设计第7章章 文件处理程序设计文件处理程序设计v“r”:文件以:文件以“读读”方式打开,文件指针只能用于方式打开,文件指针只能用于输入操作,并且文件必须已经存在。输入操作,并且文件必须已经存在。v“w”:文件以:文件以“写写”方式打开,文件指针只能用方式打开,文件指针只能用于输出操作,如果文件不存在,将会用指定的文于输出操作,如果文件不存在,将会用指定的文件名创建一个新文件。如果已存在同名文件,那件名创建一个新文件。如果已存在同名文件,那么此同名文件的内容会被删除。么此同名文件的内容会被删除。v“a”
24、:文件以:文件以“追加追加”方式打开,此模式与方式打开,此模式与“w”模式相似,返回的指针都可以用于输出操模式相似,返回的指针都可以用于输出操作;它们的区别在于,如果文件已经存在,本方作;它们的区别在于,如果文件已经存在,本方式将不会删除原来的内容,而是向文件的末端写式将不会删除原来的内容,而是向文件的末端写入新信息。入新信息。v文件常用的访问模式如表文件常用的访问模式如表7-1所示。所示。2023/1/2233解析解析C程序设计第程序设计第7章章 文件处理程序设计文件处理程序设计文件使用方式文件使用方式意义意义 r只读打开一个文本文件,只允许读数据只读打开一个文本文件,只允许读数据 w只写打
25、开或建立一个文本文件,只允许写数据只写打开或建立一个文本文件,只允许写数据 a追加打开一个文本文件,并在文件末尾写数据追加打开一个文本文件,并在文件末尾写数据 rb只读打开一个二进制文件,只允许读数据只读打开一个二进制文件,只允许读数据 wb只写打开或建立一个二进制文件,只允许写数据只写打开或建立一个二进制文件,只允许写数据 ab追加打开一个二进制文件,并在文件末尾写数据追加打开一个二进制文件,并在文件末尾写数据 r+读写打开一个文本文件,允许读和写读写打开一个文本文件,允许读和写 w+读写打开或建立一个文本文件,允许读写读写打开或建立一个文本文件,允许读写 a+读写打开一个文本文件,允许读,
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 处理 程序设计
限制150内