《C语言程序设计教程》课件-第10章.ppt

上传人:wuy****n92 文档编号:80502814 上传时间:2023-03-23 格式:PPT 页数:43 大小:267.13KB
返回 下载 相关 举报
《C语言程序设计教程》课件-第10章.ppt_第1页
第1页 / 共43页
《C语言程序设计教程》课件-第10章.ppt_第2页
第2页 / 共43页
点击查看更多>>
资源描述

《《C语言程序设计教程》课件-第10章.ppt》由会员分享,可在线阅读,更多相关《《C语言程序设计教程》课件-第10章.ppt(43页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、C C 语言程序设计语言程序设计北京科技大学北京科技大学 计算机系计算机系第第1010章章 文文 件件1第第10章章 文件文件10.1 10.1 10.1 10.1 文件的概念文件的概念文件的概念文件的概念10.2 10.2 10.2 10.2 文本文件的读写文本文件的读写文本文件的读写文本文件的读写10.3 10.3 10.3 10.3 二进制文件的读写二进制文件的读写二进制文件的读写二进制文件的读写2023/2/122l l文件文件文件文件:存储在:存储在:存储在:存储在外部存储介质外部存储介质外部存储介质外部存储介质上相关上相关上相关上相关数据数据数据数据的集合。的集合。的集合。的集合。

2、例如:程序文件中保存着程序,数据文件中保存着数据。例如:程序文件中保存着程序,数据文件中保存着数据。例如:程序文件中保存着程序,数据文件中保存着数据。例如:程序文件中保存着程序,数据文件中保存着数据。*.C C C C C C C C语言的源程序语言的源程序语言的源程序语言的源程序文本文件文本文件文本文件文本文件*.OBJOBJOBJOBJ 目标文件目标文件目标文件目标文件二进制文件二进制文件二进制文件二进制文件*.EXEEXEEXEEXE 可执行文件可执行文件可执行文件可执行文件二进制文件二进制文件二进制文件二进制文件l l文件的存储特性文件的存储特性文件的存储特性文件的存储特性文文文文件件

3、件件是是是是一一一一个个个个有有有有序序序序的的的的数数数数据据据据序序序序列列列列。C C C C语语语语言言言言把把把把文文文文件件件件作作作作为为为为一一一一个个个个字字字字符符符符(字字字字节节节节)序序序序列列列列处处处处理理理理,对对对对文文文文件件件件的的的的存存存存取取取取是是是是以字符(字节)为单位进行的。以字符(字节)为单位进行的。以字符(字节)为单位进行的。以字符(字节)为单位进行的。10.1 文件的概述文件的概述10.1.1 10.1.1 文件和文件指针文件和文件指针文件和文件指针文件和文件指针1.1.什么是文件什么是文件什么是文件什么是文件 2023/2/123l l

4、设备文件设备文件 在在在在C C C C语语语语言言言言中中中中,“文文文文件件件件”的的的的概概概概念念念念被被被被进进进进一一一一步步步步扩扩扩扩大大大大,把把把把每每每每台台台台与与与与主主主主机机机机相相相相连连连连的的的的输输输输入入入入输输输输出出出出设设设设备备备备都都都都看看看看作作作作是是是是一一一一个个个个文文文文件件件件。即即即即把把把把实实实实际际际际的的的的物物物物理理理理设设设设备备备备抽抽抽抽象象象象为为为为逻逻逻逻辑辑辑辑文文文文件件件件,它它它它们被称为们被称为们被称为们被称为设备文件设备文件设备文件设备文件。l l对对外外部部设设备备的的输输入入输输出出就就

5、是是对对设设备备文文件件的的读写。读写。10.1 文件的概述文件的概述10.1.1 10.1.1 文件和文件指针文件和文件指针文件和文件指针文件和文件指针1.1.什么是文件什么是文件什么是文件什么是文件 2023/2/124l l按文件存储数据的形式按文件存储数据的形式按文件存储数据的形式按文件存储数据的形式 ASCIIASCIIASCIIASCII文件(或称文件(或称文件(或称文件(或称文本文件文本文件文本文件文本文件)ASCIIASCII码码码码文文文文件件件件中中中中每每每每个个个个字字字字节节节节存存存存放放放放一一一一个个个个ASCIIASCII代代代代码码码码,代代代代表表表表一一

6、一一个个个个字字字字符符符符,此此此此种种种种存存存存储储储储形形形形式式式式便便便便于于于于输输输输出出出出显显显显示示示示,在在在在DOSDOSDOSDOS操操操操作作作作系系系系统统统统下可以直接阅读。下可以直接阅读。下可以直接阅读。下可以直接阅读。二进制文件二进制文件二进制文件二进制文件 二二二二进进进进制制制制文文文文件件件件中中中中的的的的数数数数据据据据是是是是按按按按照照照照在在在在内内内内存存存存中中中中的的的的二二二二进进进进制制制制存存存存储储储储格格格格式式式式存存存存放放放放的的的的,此此此此种种种种存存存存储储储储形形形形式式式式节节节节省省省省存存存存储储储储单单

7、单单元元元元。二二二二进进进进制制制制文文文文件件件件在在在在DOSDOSDOSDOS操作系统下不能直接阅读。操作系统下不能直接阅读。操作系统下不能直接阅读。操作系统下不能直接阅读。10.1 文件的概述文件的概述10.1.1 10.1.1 文件和文件指针文件和文件指针文件和文件指针文件和文件指针2.2.文件的种类文件的种类文件的种类文件的种类 2023/2/125例如将整数例如将整数例如将整数例如将整数1949194919491949分别存储在这两种数据文件中。分别存储在这两种数据文件中。分别存储在这两种数据文件中。分别存储在这两种数据文件中。ASCII文件:文件:ASCII码码二进制文件:补

8、码二进制文件:补码占用占用4个字节个字节占用占用2个字节个字节10.1 文件的概述文件的概述10.1.1 10.1.1 文件和文件指针文件和文件指针文件和文件指针文件和文件指针2.2.文件的种类文件的种类文件的种类文件的种类 0011000100110001001110010011100100110100001101000011100100111001 1 1 9 9 4 4 9 9 000001110000011110011101100111012023/2/126l l按照对文件的处理方式按照对文件的处理方式按照对文件的处理方式按照对文件的处理方式 缓冲文件缓冲文件缓冲文件缓冲文件利利利利

9、用用用用缓缓缓缓冲冲冲冲文文文文件件件件系系系系统统统统处处处处理理理理的的的的文文文文件件件件称称称称为为为为缓缓缓缓冲冲冲冲文文文文件件件件。系系系系统统统统处处处处理理理理方方方方法法法法是是是是在在在在内内内内存存存存中中中中为为为为每每每每个个个个正正正正在在在在使使使使用用用用的的的的缓缓缓缓冲冲冲冲文文文文件件件件开开开开辟辟辟辟一一一一个个个个缓缓缓缓冲冲冲冲区区区区,其其其其大大大大小小小小是是是是512512个个个个字字字字节节节节。对对对对文文文文件件件件读读读读写写写写数数数数据据据据都都都都通通通通过过过过缓缓缓缓冲区进行。冲区进行。冲区进行。冲区进行。非缓冲文件非缓

10、冲文件非缓冲文件非缓冲文件 利利利利用用用用非非非非缓缓缓缓冲冲冲冲文文文文件件件件系系系系统统统统处处处处理理理理的的的的文文文文件件件件称称称称为为为为非非非非缓缓缓缓冲冲冲冲文文文文件件件件。系系系系统统统统处处处处理理理理非非非非缓缓缓缓冲冲冲冲文文文文件件件件时时时时,不不不不为为为为文文文文件件件件开开开开辟辟辟辟缓缓缓缓冲冲冲冲区区区区,需需需需要要要要程程程程序员自行设计并管理缓冲区。序员自行设计并管理缓冲区。序员自行设计并管理缓冲区。序员自行设计并管理缓冲区。83 83 83 83年以后年以后年以后年以后ANSI CANSI CANSI CANSI C标准中取消了非缓冲文件标

11、准中取消了非缓冲文件标准中取消了非缓冲文件标准中取消了非缓冲文件系统,对文本文件和二进制文件均采用缓冲文系统,对文本文件和二进制文件均采用缓冲文系统,对文本文件和二进制文件均采用缓冲文系统,对文本文件和二进制文件均采用缓冲文件系统进行处理。件系统进行处理。件系统进行处理。件系统进行处理。10.1 文件的概述文件的概述10.1.1 10.1.1 文件和文件指针文件和文件指针文件和文件指针文件和文件指针2.2.文件的种类文件的种类文件的种类文件的种类 2023/2/127 系系系系统统统统对对对对文文文文件件件件的的的的处处处处理理理理过过过过程程程程就就就就是是是是对对对对文件进行文件进行文件进

12、行文件进行输入输入输入输入/输出输出输出输出操作的过程。操作的过程。操作的过程。操作的过程。从从从从文文文文件件件件读读读读数数数数据据据据时时时时,先先先先一一一一次次次次性性性性从从从从磁磁磁磁盘盘盘盘文文文文件件件件中中中中读读读读取取取取一一一一批批批批数数数数据据据据到到到到缓缓缓缓冲冲冲冲区区区区,然然然然后后后后再再再再从从从从缓缓缓缓冲冲冲冲区区区区逐逐逐逐个个个个将将将将数数数数据送入变量。据送入变量。据送入变量。据送入变量。向向向向文文文文件件件件写写写写数数数数据据据据时时时时,也也也也是是是是先先先先将将将将变变变变量量量量中中中中数数数数据据据据送送送送到到到到缓缓缓

13、缓冲冲冲冲区区区区,待待待待缓缓缓缓冲冲冲冲区区区区装装装装满满满满后后后后,再再再再一一一一起起起起存存存存到到到到磁磁磁磁盘盘盘盘文文文文件件件件中。中。中。中。10.1 文件的概述文件的概述10.1.1 10.1.1 文件和文件指针文件和文件指针文件和文件指针文件和文件指针3.3.缓冲文件和文件指针缓冲文件和文件指针缓冲文件和文件指针缓冲文件和文件指针 磁盘文件磁盘文件 输出输出 输入输入图图10.2 系统对缓冲文件的处理系统对缓冲文件的处理 输入输入 输出输出程序区程序区数据区数据区文件文件缓冲区缓冲区外存外存内存内存2023/2/12810.1 文件的概述文件的概述10.1.1 10

14、.1.1 文件和文件指针文件和文件指针文件和文件指针文件和文件指针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;

17、/*File status flags */char fd;/*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 checkin

18、g*/FILE;/*This is the FILE object*/2023/2/129 标标标标准准准准文文文文件件件件是是是是外外外外部部部部设设设设备备备备中中中中的的的的三三三三个个个个特特特特殊殊殊殊的的的的设设设设备备备备文文文文件件件件。它它它它们们们们的的的的文文文文件件件件指指指指针针针针是是是是系系系系统统统统定定定定义义义义的的的的,并并并并由由由由系系系系统统统统自自自自动动动动打打打打开开开开和和和和关关关关闭闭闭闭。这这这这三个三个三个三个标标标标准文件分准文件分准文件分准文件分别别别别是:是:是:是:标标标标准准准准输输输输入入入入文文文文件件件件,文文文文件件

19、件件指指指指针针针针为为为为stdinstdin,系系系系统统统统指指指指定定定定为为为为键盘键盘键盘键盘。标标标标准准准准输输输输出出出出文文文文件件件件,文文文文件件件件指指指指针针针针为为为为stdoutstdout,系系系系统统统统指指指指定定定定为为为为显显显显示器示器示器示器。标标标标准准准准错错错错误误误误输输输输出出出出文文文文件件件件,文文文文件件件件指指指指针针针针为为为为stderrstderr,系系系系统统统统指指指指定定定定为为为为显显显显示器示器示器示器,输输输输出出出出错误错误错误错误信息。信息。信息。信息。10.1 文件的概述文件的概述 10.1.1 10.1.

20、1 文件和文件指针文件和文件指针文件和文件指针文件和文件指针 4.4.标准文件标准文件标准文件标准文件 2023/2/121010.1 文件的概述文件的概述10.1.2 10.1.2 文件的打开与关闭文件的打开与关闭文件的打开与关闭文件的打开与关闭l l操作文件的一般步骤操作文件的一般步骤 打开文件打开文件打开文件打开文件 读写文件读写文件读写文件读写文件 关闭文件关闭文件关闭文件关闭文件打开文件打开文件打开文件打开文件:建立建立建立建立用户程序与文件的用户程序与文件的用户程序与文件的用户程序与文件的联系联系联系联系,为文件,为文件,为文件,为文件分分分分 配配配配一个文件缓冲区。一个文件缓冲

21、区。一个文件缓冲区。一个文件缓冲区。读写文件读写文件读写文件读写文件:是指对文件的:是指对文件的:是指对文件的:是指对文件的读读读读、写写写写、追加追加追加追加和和和和定位定位定位定位操作。操作。操作。操作。关闭文件关闭文件关闭文件关闭文件:切断切断切断切断文件与程序的文件与程序的文件与程序的文件与程序的联系联系联系联系,释放释放释放释放文件缓冲文件缓冲文件缓冲文件缓冲 区。区。区。区。C C语言的输入输出函数库中提供了大语言的输入输出函数库中提供了大语言的输入输出函数库中提供了大语言的输入输出函数库中提供了大量的函数,用于完成对数据文件的建立、量的函数,用于完成对数据文件的建立、量的函数,用

22、于完成对数据文件的建立、量的函数,用于完成对数据文件的建立、数据的读写、数据的追加等操作。数据的读写、数据的追加等操作。数据的读写、数据的追加等操作。数据的读写、数据的追加等操作。在程序中在程序中在程序中在程序中调用调用调用调用这些这些这些这些函数函数函数函数时,必须先用时,必须先用时,必须先用时,必须先用includeinclude命令包含命令包含命令包含命令包含stdio.hstdio.h文件。文件。文件。文件。2023/2/1211常用的常用的常用的常用的调用调用调用调用形式:形式:形式:形式:FILE FILE FILE FILE *fpfpfpfp;fp=fopen(fp=fopen

23、(fp=fopen(fp=fopen(文件名文件名文件名文件名,文件使用方式文件使用方式文件使用方式文件使用方式);文件名文件名文件名文件名:需要打开的文件名称:需要打开的文件名称:需要打开的文件名称:需要打开的文件名称(字符串字符串字符串字符串)。文件使用方式文件使用方式文件使用方式文件使用方式:是具有特定含义的:是具有特定含义的:是具有特定含义的:是具有特定含义的符号符号符号符号。10.1 文件的概述文件的概述 10.1.2 10.1.2 文件的打开与关闭文件的打开与关闭文件的打开与关闭文件的打开与关闭 1.1.文件打开函数文件打开函数文件打开函数文件打开函数fopen(fopen(fop

24、en(fopen()函数功能:函数功能:函数功能:函数功能:按指定的按指定的按指定的按指定的文件使用方式文件使用方式文件使用方式文件使用方式打开指定的打开指定的打开指定的打开指定的文件文件文件文件。若文件打开若文件打开若文件打开若文件打开成功成功成功成功,为该文件分配一个文件缓冲区和一个,为该文件分配一个文件缓冲区和一个,为该文件分配一个文件缓冲区和一个,为该文件分配一个文件缓冲区和一个FILEFILEFILEFILE类型变量,返回一个类型变量,返回一个类型变量,返回一个类型变量,返回一个FILEFILEFILEFILE类型类型类型类型指针指针指针指针;若文件打开若文件打开若文件打开若文件打开

25、失败失败失败失败,返回,返回,返回,返回NULLNULLNULLNULL。2023/2/1212l l文本文件的三种基本使用方式文本文件的三种基本使用方式文本文件的三种基本使用方式文本文件的三种基本使用方式”r r r r”:只读方式只读方式 为为读读(输输入入)文文本本文文件件打打开开文文件件。若若文文件件不不存存在在,返回返回NULLNULL。”w w w w”:只写方式只写方式 为为写写(输输出出)文文本本文文件件打打开开文文件件。若若文文件件不不存存在在,则建立一个新文件;若则建立一个新文件;若文件已存在文件已存在文件已存在文件已存在,则,则清空文件清空文件清空文件清空文件。”a a

26、a a”:追加方式追加方式 为为写写(输输出出)文文本本文文件件打打开开文文件件。若若文文文文件件件件已已已已存存存存在在在在,则则保保保保持持持持原原来来文文件件的的内内内内容容容容,将将新新的的数数据据增增增增加加加加到到原原来来数数据据的的后面后面后面后面;若文件不存在,则返回;若文件不存在,则返回NULLNULL。10.1 文件的概述文件的概述 10.1.2 10.1.2 文件的打开与关闭文件的打开与关闭文件的打开与关闭文件的打开与关闭2023/2/1213l l二进制文件的三种基本使用方式二进制文件的三种基本使用方式二进制文件的三种基本使用方式二进制文件的三种基本使用方式”r r r

27、 rb b b b”:只读方式只读方式 为为读读(输输入入)二二进进制制文文件件打打开开文文件件。若若文文件件不不存存在在,返回返回NULLNULLNULLNULL。”w w w wb b b b”:只写方式只写方式 为为写写(输输出出)二二进进制制文文件件打打开开文文件件。若若文文件件不不存存在在,则建立一个新文件;若则建立一个新文件;若文件已存在文件已存在文件已存在文件已存在,则,则清空文件清空文件清空文件清空文件。”a a a ab b b b”:追加方式追加方式 为为写写(输输出出)二二进进制制文文件件打打开开文文件件。若若文文文文件件件件已已已已存存存存在在在在,则则保保保保持持持持

28、原原来来文文件件的的内内内内容容容容,将将新新的的数数据据增增增增加加加加到到原原来来数数据据的的后面后面后面后面;若文件不存在,则返回;若文件不存在,则返回NULLNULLNULLNULL。10.1 文件的概述文件的概述 10.1.2 10.1.2 文件的打开与关闭文件的打开与关闭文件的打开与关闭文件的打开与关闭2023/2/121410.1 文件的概述文件的概述 10.1.2 10.1.2 文件的打开与关闭文件的打开与关闭文件的打开与关闭文件的打开与关闭l l文件的其他打开方式文件的其他打开方式文件的其他打开方式文件的其他打开方式”r r r r+”:可以对可以对可以对可以对文本文件文本文

29、件文本文件文本文件进行进行进行进行读读读读/写写写写操作。操作。操作。操作。若文件不存在返回若文件不存在返回若文件不存在返回若文件不存在返回NULLNULLNULLNULL;若文件存在若文件存在若文件存在若文件存在内容不内容不内容不内容不被被被被清空清空清空清空。”w w w w+”:可以对可以对可以对可以对文本文件文本文件文本文件文本文件进行进行进行进行读读读读/写写写写操作。操作。操作。操作。若文件已经存在,则先若文件已经存在,则先若文件已经存在,则先若文件已经存在,则先清空清空清空清空文件原来的文件原来的文件原来的文件原来的内容内容内容内容。”a a a a+”:可以对可以对可以对可以对

30、文本文件文本文件文本文件文本文件进行进行进行进行读读读读/追加追加追加追加操作。操作。操作。操作。文件内容不会清空。文件内容不会清空。文件内容不会清空。文件内容不会清空。”r r r rb b b b+”:可以对可以对可以对可以对二进制文件二进制文件二进制文件二进制文件进行进行进行进行读读读读/写写写写操作。操作。操作。操作。”w w w wb b b b+”:可以对可以对可以对可以对二进制文件二进制文件二进制文件二进制文件进行进行进行进行读读读读/写写写写操作。操作。操作。操作。”a a a ab b b b+”:可以对可以对可以对可以对二进制文件二进制文件二进制文件二进制文件进行进行进行进

31、行读读读读/追加追加追加追加操作。操作。操作。操作。2023/2/1215l l检查文件打开操作是否成功检查文件打开操作是否成功检查文件打开操作是否成功检查文件打开操作是否成功 ifififif(fp=fopen(fp=fopen(fp=fopen(fp=fopen(filenamefilenamefilenamefilename,r r r r)=NULLNULLNULLNULL)printf(”Cannot open file.n”);printf(”Cannot open file.n”);printf(”Cannot open file.n”);printf(”Cannot open

32、file.n”);exit(0)exit(0)exit(0)exit(0);检查以检查以检查以检查以只读只读只读只读方式打开文件名为方式打开文件名为方式打开文件名为方式打开文件名为filenamefilenamefilenamefilename的文件是否成功。的文件是否成功。的文件是否成功。的文件是否成功。exitexit函数的作用函数的作用函数的作用函数的作用:结结结结束程序的束程序的束程序的束程序的执执执执行行行行,并将,并将,并将,并将实实实实参参参参0 0作作作作为为为为函数返函数返函数返函数返回回回回值传给值传给值传给值传给操作系操作系操作系操作系统统统统。10.1 文件的概述文件的

33、概述 10.1.2 10.1.2 文件的打开与关闭文件的打开与关闭文件的打开与关闭文件的打开与关闭2023/2/1216常用的常用的调用调用形式:形式:FILE FILE FILE FILE *fpfpfpfp;fclose(fclose(fclose(fclose(fpfpfpfp);fp fp fp fp:已经打开的文件指针。:已经打开的文件指针。:已经打开的文件指针。:已经打开的文件指针。10.1 文件的概述文件的概述 10.1.2 10.1.2 文件的打开与关闭文件的打开与关闭文件的打开与关闭文件的打开与关闭 2.2.文件关闭函数文件关闭函数文件关闭函数文件关闭函数fclose(fcl

34、ose(fclose(fclose()函数功能:函数功能:关闭关闭关闭关闭fpfpfpfp指定的文件,释放该文件的缓冲区、指定的文件,释放该文件的缓冲区、指定的文件,释放该文件的缓冲区、指定的文件,释放该文件的缓冲区、FILEFILEFILEFILE类型变量及文件指针。类型变量及文件指针。类型变量及文件指针。类型变量及文件指针。若文件关闭成功,则返回若文件关闭成功,则返回若文件关闭成功,则返回若文件关闭成功,则返回0 0 0 0;若文件关闭失败,则返回若文件关闭失败,则返回若文件关闭失败,则返回若文件关闭失败,则返回非非非非0 0 0 0值。值。值。值。2023/2/1217常用的常用的调用调

35、用形式:形式:FILE FILE FILE FILE *fpfpfpfp;fputc(fputc(fputc(fputc(chchchch,fpfpfpfp);chchchch:需要输出的字符,可以是字符常量或字符变量;需要输出的字符,可以是字符常量或字符变量;需要输出的字符,可以是字符常量或字符变量;需要输出的字符,可以是字符常量或字符变量;fp fp fp fp:文件指针变量:文件指针变量:文件指针变量:文件指针变量。对对对对文文文文本本本本文文文文件件件件的的的的读读读读写写写写操操操操作作作作,必必必必须须须须按按按按文文文文件件件件中中中中字字字字符符符符的的的的先先先先后后后后顺顺

36、顺顺序序序序进进进进行行行行,只只只只能能能能在在在在操操操操作作作作了了了了第第第第i i i i个个个个字符之后,才能操作第字符之后,才能操作第字符之后,才能操作第字符之后,才能操作第i i i i+1+1+1+1个字符。个字符。个字符。个字符。在在在在对对对对文文文文件件件件操操操操作作作作时时时时,文文文文件件件件的的的的读读读读写写写写指指指指针针针针由由由由系系系系统统统统自动向后自动向后自动向后自动向后移动。移动。移动。移动。10.2 文本文件的读写文本文件的读写 10.2.1 10.2.1 文件的字符输入输出函数文件的字符输入输出函数文件的字符输入输出函数文件的字符输入输出函数

37、 1.1.字符输出函数字符输出函数字符输出函数字符输出函数fputc(fputc(fputc(fputc()(或或或或putc(putc(putc(putc())函数功能:函数功能:将一个字符(将一个字符(将一个字符(将一个字符(ASCIIASCIIASCIIASCII码)写入到码)写入到码)写入到码)写入到fpfpfpfp所指向的文件(该文件所指向的文件(该文件所指向的文件(该文件所指向的文件(该文件必须是以写或读写方式打开的)中。必须是以写或读写方式打开的)中。必须是以写或读写方式打开的)中。必须是以写或读写方式打开的)中。若输出操作成功,函数返回写入的字符;否则,返回若输出操作成功,函数

38、返回写入的字符;否则,返回若输出操作成功,函数返回写入的字符;否则,返回若输出操作成功,函数返回写入的字符;否则,返回EOFEOFEOFEOF。系统定义的文本文件结系统定义的文本文件结束标志,其值为束标志,其值为(-1)。putcputc函函函函数数数数与与与与fputcfputc函函函函数数数数的的的的功功功功能能能能相相相相同同同同。在在在在stdio.hstdio.h文文文文件中被定件中被定件中被定件中被定义为义为义为义为#define putc(c,f)fputc(c),f)define putc(c,f)fputc(c),f)标标标标准准准准文文文文件件件件中中中中用用用用的的的的p

39、utcharputchar函函函函数数数数是是是是fputcfputc函函函函数数数数的的的的特特特特殊用法,它在殊用法,它在殊用法,它在殊用法,它在stdio.hstdio.h文件中被定文件中被定文件中被定文件中被定义为义为义为义为#define putchar(c)putc(c),stdout)define putchar(c)putc(c),stdout)2023/2/1218常用的常用的调用调用形式:形式:FILE FILE FILE FILE *fpfpfpfp;chchchch =fgetcfgetcfgetcfgetc(fpfpfpfp);chchchch:可以是字符变量或整型变

40、量;可以是字符变量或整型变量;可以是字符变量或整型变量;可以是字符变量或整型变量;fp fp fp fp:文件指针变量:文件指针变量:文件指针变量:文件指针变量。10.2 文本文件的读写文本文件的读写 10.2.1 10.2.1 文件的字符输入输出函数文件的字符输入输出函数文件的字符输入输出函数文件的字符输入输出函数 2.2.字符输入函数字符输入函数字符输入函数字符输入函数fgetc(fgetc(fgetc(fgetc()(或或或或getc(getc(getc(getc())函数功能:函数功能:从从从从fpfpfpfp所指向的文件(该文件必须是以读或读写方式打开所指向的文件(该文件必须是以读或

41、读写方式打开所指向的文件(该文件必须是以读或读写方式打开所指向的文件(该文件必须是以读或读写方式打开的)中读取一个字符。的)中读取一个字符。的)中读取一个字符。的)中读取一个字符。若输入操作成功,函数返回读入的字符;若输入操作成功,函数返回读入的字符;若输入操作成功,函数返回读入的字符;若输入操作成功,函数返回读入的字符;若文件结束或输入操作失败,则返回若文件结束或输入操作失败,则返回若文件结束或输入操作失败,则返回若文件结束或输入操作失败,则返回EOFEOFEOFEOF。getcgetc函函函函数数数数与与与与fgetcfgetc函函函函数数数数的的的的功功功功能能能能相相相相同同同同。在在

42、在在stdio.hstdio.h文文文文件中被定件中被定件中被定件中被定义为义为义为义为#define getc(f)fgetc(f)define getc(f)fgetc(f)标标标标准准准准文文文文件件件件中中中中用用用用的的的的getchargetchar函函函函数数数数是是是是fgetcfgetc函函函函数数数数的的的的特特特特殊用法,它在殊用法,它在殊用法,它在殊用法,它在stdio.hstdio.h文件中被定文件中被定文件中被定文件中被定义为义为义为义为#define getchar()getc(stdin)define getchar()getc(stdin)2023/2/121

43、9【例例例例10.110.1】利利利利用用用用fputcfputc和和和和fgetcfgetc函函函函数数数数建建建建立立立立一一一一个个个个文文文文本本本本文文文文件件件件,并并并并显显显显示示示示文件中的内容。文件中的内容。文件中的内容。文件中的内容。#include include main()main()FILE FILE*fpfp;/*;/*定义一个文件指针变量定义一个文件指针变量定义一个文件指针变量定义一个文件指针变量fp fp fp fp*/*/int c;/*c int c;/*c为存放字符的变量为存放字符的变量为存放字符的变量为存放字符的变量*/*/char filename

44、40;/*filenamechar filename40;/*filename用于存放数据文件名用于存放数据文件名用于存放数据文件名用于存放数据文件名*/*/printf(filename:);/*printf(filename:);/*提示输入磁盘文件名提示输入磁盘文件名提示输入磁盘文件名提示输入磁盘文件名*/*/gets(filename);gets(filename);if(if(fpfp=fopen(filename,=fopen(filename,w w)=NULL)=NULL)printf(Cant open the%sn,filename);printf(Cant open th

45、e%sn,filename);exit(0);exit(0);10.2 文本文件的读写文本文件的读写 10.2.1 10.2.1 文件的字符输入输出函数文件的字符输入输出函数文件的字符输入输出函数文件的字符输入输出函数测试打开文件测试打开文件是否成功是否成功2023/2/1220while(c=getchar()!=EOF)while(c=getchar()!=EOF)/*/*键盘文件结束标志:输入键盘文件结束标志:输入键盘文件结束标志:输入键盘文件结束标志:输入Ctrl+zCtrl+z,显示显示显示显示 Z Z后回车后回车后回车后回车*/*/putc(c,putc(c,fpfp);/*);/

46、*将键盘输入的字符写到文件中将键盘输入的字符写到文件中将键盘输入的字符写到文件中将键盘输入的字符写到文件中*/*/fclose(fclose(fpfp);/*);/*建立文件结束,关闭文件建立文件结束,关闭文件建立文件结束,关闭文件建立文件结束,关闭文件*/*/printf(outfile:n);printf(outfile:n);fpfp=fopen(filename,=fopen(filename,r r);/*);/*以读方式打开文本文件以读方式打开文本文件以读方式打开文本文件以读方式打开文本文件*/*/while(c=getc(while(c=getc(fpfp)!=EOF)/*)!=

47、EOF)/*未读到文件结束标志时未读到文件结束标志时未读到文件结束标志时未读到文件结束标志时 */*/putchar(c);/*putchar(c);/*在显示器显示读出的字符在显示器显示读出的字符在显示器显示读出的字符在显示器显示读出的字符*/*/fclose(fclose(fpfp);/*);/*读文件结束,关闭文件读文件结束,关闭文件读文件结束,关闭文件读文件结束,关闭文件*/*/10.2 文本文件的读写文本文件的读写 10.2.1 10.2.1 文件的字符输入输出函数文件的字符输入输出函数文件的字符输入输出函数文件的字符输入输出函数2023/2/1221常用的常用的调用调用形式:形式:

48、FILE FILE FILE FILE *fpfpfpfp;feoffeoffeoffeof(fpfpfpfp);fpfpfpfp:文件指针变量:文件指针变量:文件指针变量:文件指针变量。10.2 文本文件的读写文本文件的读写 10.2.2 10.2.2 文件结束测试函数文件结束测试函数文件结束测试函数文件结束测试函数函数功能:函数功能:测试测试测试测试fpfp所指向的文件是否已读到文件尾部。所指向的文件是否已读到文件尾部。所指向的文件是否已读到文件尾部。所指向的文件是否已读到文件尾部。若该文件没有结束,则返回若该文件没有结束,则返回若该文件没有结束,则返回若该文件没有结束,则返回0 0;若文

49、件结束,则返回若文件结束,则返回若文件结束,则返回若文件结束,则返回非非非非0 0值。值。值。值。对对对对文文文文本本本本文文文文件件件件进进进进行行行行读读读读操操操操作作作作时时时时,例例例例如如如如fgetc(fgetc()返返返返回回回回EOFEOF,即即即即可可可可作作作作文文文文件件件件结结结结束束束束处处处处理理理理。但但但但在在在在二二二二进进进进制制制制文文文文件件件件中中中中-1-1是是是是合合合合法法法法数数数数据据据据,所所所所以以以以系系系系统统统统提提提提供供供供了了了了一一一一个个个个适适适适用用用用对对对对象象象象更更更更普普普普遍遍遍遍的文件的文件的文件的文件

50、结结结结束束束束测试测试测试测试函数函数函数函数feoffeof。2023/2/1222例如例如例如例如:复制一个磁盘文件。复制一个磁盘文件。复制一个磁盘文件。复制一个磁盘文件。#include include include include main(main(main(main()FILE FILE FILE FILE*ininininfpfpfpfp,*o o o oututututfpfpfpfp;char;char;char;char i i i in n n nfilefilefilefile 4 4 4 40,0,0,0,outoutoutoutfilefilefilefile

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com