《c语言程序设计》第11章.ppt
《《c语言程序设计》第11章.ppt》由会员分享,可在线阅读,更多相关《《c语言程序设计》第11章.ppt(43页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、C C 语言程序设计语言程序设计第十一章第十一章 文文 件件1第第11章章 文件文件11.1 11.1 11.1 11.1 文件的概念文件的概念文件的概念文件的概念11.2 11.2 11.2 11.2 文本文件的读写文本文件的读写文本文件的读写文本文件的读写11.3 11.3 11.3 11.3 二进制文件的读写二进制文件的读写二进制文件的读写二进制文件的读写2022/12/292l l文件文件文件文件:存储在:存储在:存储在:存储在外部存储介质外部存储介质外部存储介质外部存储介质上相关上相关上相关上相关数据数据数据数据的集合。的集合。的集合。的集合。例如:程序文件中保存着程序,数据文件中保
2、存着数据。例如:程序文件中保存着程序,数据文件中保存着数据。例如:程序文件中保存着程序,数据文件中保存着数据。例如:程序文件中保存着程序,数据文件中保存着数据。*.C C C C C C C C语言的源程序语言的源程序语言的源程序语言的源程序文本文件文本文件文本文件文本文件*.OBJOBJOBJOBJ 目标文件目标文件目标文件目标文件二进制文件二进制文件二进制文件二进制文件*.EXEEXEEXEEXE 可执行文件可执行文件可执行文件可执行文件二进制文件二进制文件二进制文件二进制文件l l文件的存储特性文件的存储特性文件的存储特性文件的存储特性文文文文件件件件是是是是一一一一个个个个有有有有序序
3、序序的的的的数数数数据据据据序序序序列列列列。C C C C语语语语言言言言把把把把文文文文件件件件作作作作为为为为一一一一个个个个字字字字符符符符(字字字字节节节节)序序序序列列列列处处处处理理理理,对对对对文文文文件件件件的的的的存存存存取取取取是是是是以字符(字节)为单位进行的。以字符(字节)为单位进行的。以字符(字节)为单位进行的。以字符(字节)为单位进行的。11.1 文件的概述文件的概述11.1.1 11.1.1 文件和文件指针文件和文件指针文件和文件指针文件和文件指针1.1.什么是文件什么是文件什么是文件什么是文件 2022/12/293l l设备文件设备文件 在在在在C C C
4、C语语语语言言言言中中中中,“文文文文件件件件”的的的的概概概概念念念念被被被被进进进进一一一一步步步步扩扩扩扩大大大大,把把把把每每每每台台台台与与与与主主主主机机机机相相相相连连连连的的的的输输输输入入入入输输输输出出出出设设设设备备备备都都都都看看看看作作作作是是是是一一一一个个个个文文文文件件件件。即即即即把把把把实实实实际际际际的的的的物物物物理理理理设设设设备备备备抽抽抽抽象象象象为为为为逻逻逻逻辑辑辑辑文文文文件件件件,它它它它们被称为们被称为们被称为们被称为设备文件设备文件设备文件设备文件。l l对对外外部部设设备备的的输输入入输输出出就就是是对对设设备备文文件件的的读写。读写
5、。11.1 文件的概述文件的概述11.1.1 11.1.1 文件和文件指针文件和文件指针文件和文件指针文件和文件指针1.1.什么是文件什么是文件什么是文件什么是文件 2022/12/294l l按文件存储数据的形式按文件存储数据的形式按文件存储数据的形式按文件存储数据的形式 ASCIIASCIIASCIIASCII文件(或称文件(或称文件(或称文件(或称文本文件文本文件文本文件文本文件)ASCIIASCII码码码码文文文文件件件件中中中中每每每每个个个个字字字字节节节节存存存存放放放放一一一一个个个个ASCIIASCII代代代代码码码码,代代代代表表表表一一一一个个个个字字字字符符符符,此此此
6、此种种种种存存存存储储储储形形形形式式式式便便便便于于于于输输输输出出出出显显显显示示示示,在在在在DOSDOSDOSDOS操操操操作作作作系系系系统统统统下可以直接阅读。下可以直接阅读。下可以直接阅读。下可以直接阅读。二进制文件二进制文件二进制文件二进制文件 二二二二进进进进制制制制文文文文件件件件中中中中的的的的数数数数据据据据是是是是按按按按照照照照在在在在内内内内存存存存中中中中的的的的二二二二进进进进制制制制存存存存储储储储格格格格式式式式存存存存放放放放的的的的,此此此此种种种种存存存存储储储储形形形形式式式式节节节节省省省省存存存存储储储储单单单单元元元元。二二二二进进进进制制制
7、制文文文文件件件件在在在在DOSDOSDOSDOS操作系统下不能直接阅读。操作系统下不能直接阅读。操作系统下不能直接阅读。操作系统下不能直接阅读。11.1 文件的概述文件的概述11.1.1 11.1.1 文件和文件指针文件和文件指针文件和文件指针文件和文件指针2.2.文件的种类文件的种类文件的种类文件的种类 2022/12/295例如将整数例如将整数例如将整数例如将整数1949194919491949分别存储在这两种数据文件中。分别存储在这两种数据文件中。分别存储在这两种数据文件中。分别存储在这两种数据文件中。ASCII文件:文件:ASCII码码二进制文件:补码二进制文件:补码占用占用4个字节
8、个字节占用占用2个字节个字节11.1 文件的概述文件的概述11.1.1 11.1.1 文件和文件指针文件和文件指针文件和文件指针文件和文件指针2.2.文件的种类文件的种类文件的种类文件的种类 0011000100110001001110010011100100110100001101000011100100111001 1 1 9 9 4 4 9 9 00000111100111012022/12/296l l按按按按照对文件的处理方照对文件的处理方照对文件的处理方照对文件的处理方式式式式 缓冲文件缓冲文件缓冲文件缓冲文件利利利利用用用用缓缓缓缓冲冲冲冲文文文文件件件件系系系系统统统统处处处处
9、理理理理的的的的文文文文件件件件称称称称为为为为缓缓缓缓冲冲冲冲文文文文件件件件。系系系系统统统统处处处处理理理理方方方方法法法法是是是是在在在在内内内内存存存存中中中中为为为为每每每每个个个个正正正正在在在在使使使使用用用用的的的的缓缓缓缓冲冲冲冲文文文文件件件件开开开开辟辟辟辟一一一一个个个个缓缓缓缓冲冲冲冲区区区区,其其其其大大大大小小小小是是是是512512个个个个字字字字节节节节。对对对对文文文文件件件件读读读读写写写写数数数数据据据据都都都都通通通通过过过过缓缓缓缓冲区进行。冲区进行。冲区进行。冲区进行。非缓冲文件非缓冲文件非缓冲文件非缓冲文件 利利利利用用用用非非非非缓缓缓缓冲冲
10、冲冲文文文文件件件件系系系系统统统统处处处处理理理理的的的的文文文文件件件件称称称称为为为为非非非非缓缓缓缓冲冲冲冲文文文文件件件件。系系系系统统统统处处处处理理理理非非非非缓缓缓缓冲冲冲冲文文文文件件件件时时时时,不不不不为为为为文文文文件件件件开开开开辟辟辟辟缓缓缓缓冲冲冲冲区区区区,需需需需要要要要程程程程序员自行设计并管理缓冲区。序员自行设计并管理缓冲区。序员自行设计并管理缓冲区。序员自行设计并管理缓冲区。83 83 83 83年以后年以后年以后年以后ANSI CANSI CANSI CANSI C标准中取消了非缓冲文件标准中取消了非缓冲文件标准中取消了非缓冲文件标准中取消了非缓冲文件
11、系统,对文本文件和二进制文件均采用缓冲文系统,对文本文件和二进制文件均采用缓冲文系统,对文本文件和二进制文件均采用缓冲文系统,对文本文件和二进制文件均采用缓冲文件系统进行处理。件系统进行处理。件系统进行处理。件系统进行处理。11.1 文件的概述文件的概述11.1.1 11.1.1 文件和文件指针文件和文件指针文件和文件指针文件和文件指针2.2.文件的种类文件的种类文件的种类文件的种类 2022/12/297 系系系系统统统统对对对对文文文文件件件件的的的的处处处处理理理理过过过过程程程程就就就就是是是是对对对对文件进行文件进行文件进行文件进行输入输入输入输入/输出输出输出输出操作的过程。操作的
12、过程。操作的过程。操作的过程。从从从从文文文文件件件件读读读读数数数数据据据据时时时时,先先先先一一一一次次次次性性性性从从从从磁磁磁磁盘盘盘盘文文文文件件件件中中中中读读读读取取取取一一一一批批批批数数数数据据据据到到到到缓缓缓缓冲冲冲冲区区区区,然然然然后后后后再再再再从从从从缓缓缓缓冲冲冲冲区区区区逐逐逐逐个个个个将将将将数数数数据送入变量。据送入变量。据送入变量。据送入变量。向向向向文文文文件件件件写写写写数数数数据据据据时时时时,也也也也是是是是先先先先将将将将变变变变量量量量中中中中数数数数据据据据送送送送到到到到缓缓缓缓冲冲冲冲区区区区,待待待待缓缓缓缓冲冲冲冲区区区区装装装装满
13、满满满后后后后,再再再再一一一一起起起起存存存存到到到到磁磁磁磁盘盘盘盘文文文文件件件件中。中。中。中。11.1 文件的概述文件的概述11.1.1 11.1.1 文件和文件指针文件和文件指针文件和文件指针文件和文件指针3.3.缓冲文件和文件指针缓冲文件和文件指针缓冲文件和文件指针缓冲文件和文件指针 磁盘文件磁盘文件 输出输出 输入输入图图11.2 系统对缓冲文件的处理系统对缓冲文件的处理 输入输入 输出输出程序区程序区数据区数据区文件文件缓冲区缓冲区外存外存内存内存2022/12/29811.1 文件的概述文件的概述11.1.1 11.1.1 文件和文件指针文件和文件指针文件和文件指针文件和文
14、件指针3.3.缓冲文件和文件指针缓冲文件和文件指针缓冲文件和文件指针缓冲文件和文件指针 l l文件类型指针文件类型指针在在在在缓缓缓缓冲冲冲冲文文文文件件件件系系系系统统统统中中中中,对对对对每每每每个个个个正正正正在在在在使使使使用用用用的的的的文文文文件件件件都都都都自自自自动动动动分分分分配配配配一一一一个个个个FILEFILEFILEFILE类类类类型型型型的的的的结结结结构构构构体体体体变变变变量量量量,用用用用于于于于存存存存放放放放文文文文件件件件的的的的有有有有关关关关信信信信息息息息,如如如如文文文文件件件件号号号号、文文文文件件件件状状状状态态态态、缓冲区地址和大小等。缓冲
15、区地址和大小等。缓冲区地址和大小等。缓冲区地址和大小等。FILEFILEFILEFILE类型是系统定义的,包含在类型是系统定义的,包含在类型是系统定义的,包含在类型是系统定义的,包含在stdio.hstdio.hstdio.hstdio.h头文件头文件头文件头文件中中中中在在在在C C C C语语语语言言言言中中中中,无无无无论论论论对对对对磁磁磁磁盘盘盘盘文文文文件件件件还还还还是是是是设设设设备备备备文文文文件件件件的的的的读读读读/写写写写都都都都要要要要通通通通过过过过FILEFILEFILEFILE类类类类型型型型的的的的结结结结构构构构体体体体变变变变量量量量进进进进行行行行。因因
16、因因此此此此对对对对于于于于每每每每个个个个使使使使用用用用中中中中的的的的磁磁磁磁盘盘盘盘文文文文件件件件必必必必须须须须先先先先定定定定义义义义一一一一个个个个FILEFILEFILEFILE类型的类型的类型的类型的文件指针变量文件指针变量文件指针变量文件指针变量并指向并指向并指向并指向此变量此变量此变量此变量。FILEFILE *文件指针变量名文件指针变量名文件指针变量名文件指针变量名;typedef struct short level;/*fill/empty level of buffer*/unsigned flags;/*File status flags */char fd;
17、/*File descriptor */unsigned char hold;/*Ungetc char if no buffer*/short bsize;/*Buffer size */unsigned char *buffer;/*Data transfer buffer*/unsigned char *curp;/*Current active pointer*/unsigned istemp;/*Temporary file indicator*/short token;/*Used for validity checking*/FILE;/*This is the FILE obj
18、ect*/2022/12/299 标标标标准准准准文文文文件件件件是是是是外外外外部部部部设设设设备备备备中中中中的的的的三三三三个个个个特特特特殊殊殊殊的的的的设设设设备备备备文文文文件件件件。它它它它们们们们的的的的文文文文件件件件指指指指针针针针是是是是系系系系统统统统定定定定义义义义的的的的,并并并并由由由由系系系系统统统统自自自自动动动动打打打打开开开开和和和和关关关关闭闭闭闭。这这这这三个三个三个三个标标标标准文件分准文件分准文件分准文件分别别别别是:是:是:是:标标标标准准准准输输输输入入入入文文文文件件件件,文文文文件件件件指指指指针针针针为为为为stdinstdin,系系系系
19、统统统统指指指指定定定定为为为为键盘键盘键盘键盘。标标标标准准准准输输输输出出出出文文文文件件件件,文文文文件件件件指指指指针针针针为为为为stdoutstdout,系系系系统统统统指指指指定定定定为为为为显显显显示器示器示器示器。标标标标准准准准错错错错误误误误输输输输出出出出文文文文件件件件,文文文文件件件件指指指指针针针针为为为为stderrstderr,系系系系统统统统指指指指定定定定为为为为显显显显示器示器示器示器,输输输输出出出出错误错误错误错误信息。信息。信息。信息。11.1 文件的概述文件的概述 11.1.1 11.1.1 文件和文件指针文件和文件指针文件和文件指针文件和文件指
20、针 4.4.标准文件标准文件标准文件标准文件 2022/12/291011.1 文件的概述文件的概述11.1.2 11.1.2 文件的打开与关闭文件的打开与关闭文件的打开与关闭文件的打开与关闭l l操作文件的一般步骤操作文件的一般步骤 打开文件打开文件打开文件打开文件 读写文件读写文件读写文件读写文件 关闭文件关闭文件关闭文件关闭文件打开文件打开文件打开文件打开文件:建立建立建立建立用户程序与文件的用户程序与文件的用户程序与文件的用户程序与文件的联系联系联系联系,为文件,为文件,为文件,为文件分分分分 配配配配一个文件缓冲区。一个文件缓冲区。一个文件缓冲区。一个文件缓冲区。读写文件读写文件读写
21、文件读写文件:是指对文件的:是指对文件的:是指对文件的:是指对文件的读读读读、写写写写、追加追加追加追加和和和和定位定位定位定位操作。操作。操作。操作。关闭文件关闭文件关闭文件关闭文件:切断切断切断切断文件与程序的文件与程序的文件与程序的文件与程序的联系联系联系联系,释放释放释放释放文件缓冲文件缓冲文件缓冲文件缓冲 区。区。区。区。C C语言的输入输出函数库中提供了大语言的输入输出函数库中提供了大语言的输入输出函数库中提供了大语言的输入输出函数库中提供了大量的函数,用于完成对数据文件的建立、量的函数,用于完成对数据文件的建立、量的函数,用于完成对数据文件的建立、量的函数,用于完成对数据文件的建
22、立、数据的读写、数据的追加等操作。数据的读写、数据的追加等操作。数据的读写、数据的追加等操作。数据的读写、数据的追加等操作。在程序中在程序中在程序中在程序中调用调用调用调用这些这些这些这些函数函数函数函数时,必须先用时,必须先用时,必须先用时,必须先用includeinclude命令包含命令包含命令包含命令包含stdio.hstdio.h文件。文件。文件。文件。2022/12/2911常用的常用的常用的常用的调用调用调用调用形式:形式:形式:形式:FILE FILE FILE FILE *fpfpfpfp;fpfpfpfp=fopenfopenfopenfopen(文件名文件名文件名文件名,文
23、件使用方式文件使用方式文件使用方式文件使用方式);文件名文件名文件名文件名:需要打开的文件名称:需要打开的文件名称:需要打开的文件名称:需要打开的文件名称(字符串字符串字符串字符串)。文件使用方式文件使用方式文件使用方式文件使用方式:是具有特定含义的:是具有特定含义的:是具有特定含义的:是具有特定含义的符号符号符号符号。11.1 文件的概述文件的概述 11.1.2 11.1.2 文件的打开与关闭文件的打开与关闭文件的打开与关闭文件的打开与关闭 1.1.文件打开函数文件打开函数文件打开函数文件打开函数fopenfopenfopenfopen()函数功能:函数功能:函数功能:函数功能:按指定的按指
24、定的按指定的按指定的文件使用方式文件使用方式文件使用方式文件使用方式打开指定的打开指定的打开指定的打开指定的文件文件文件文件。若文件打开若文件打开若文件打开若文件打开成功成功成功成功,为该文件分配一个文件缓冲区和一个为该文件分配一个文件缓冲区和一个为该文件分配一个文件缓冲区和一个为该文件分配一个文件缓冲区和一个FILEFILEFILEFILE类型变量,类型变量,类型变量,类型变量,返回返回返回返回一个一个一个一个FILEFILEFILEFILE类型类型类型类型指针指针指针指针;若文件打开若文件打开若文件打开若文件打开失败失败失败失败,返回,返回,返回,返回NULLNULLNULLNULL。20
25、22/12/2912l l文本文件的三种基本使用方式文本文件的三种基本使用方式文本文件的三种基本使用方式文本文件的三种基本使用方式”r r r r”:只读方式只读方式 为为读读(输输入入)文文本本文文件件打打开开文文件件。若若文文件件不不存存在在,返回返回NULLNULL。”w w w w”:只写方式只写方式 为为写写(输输出出)文文本本文文件件打打开开文文件件。若若文文件件不不存存在在,则建立一个新文件;若则建立一个新文件;若文件已存在文件已存在文件已存在文件已存在,则,则清空文件清空文件清空文件清空文件。”a a a a”:追加方式追加方式 为为写写(输输出出)文文本本文文件件打打开开文文
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c语言程序设计 语言程序设计 11
限制150内