收藏 分销(赏)

《C语言程序设计教程》.ppt

上传人:w****g 文档编号:2266034 上传时间:2024-05-24 格式:PPT 页数:43 大小:201KB
下载 相关 举报
《C语言程序设计教程》.ppt_第1页
第1页 / 共43页
《C语言程序设计教程》.ppt_第2页
第2页 / 共43页
《C语言程序设计教程》.ppt_第3页
第3页 / 共43页
《C语言程序设计教程》.ppt_第4页
第4页 / 共43页
《C语言程序设计教程》.ppt_第5页
第5页 / 共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 二二二二进进制文件的制文件的制文件的制文件的读读写写写写2024/5/21 周二2l 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.什么是文件什么是文件什么是文件什么是文件 2024/5/21 周二3l l设备文件文件 在在在在C C C C语语言言言言中中中中,“文文文文件件件件”的的的的概概

4、概概念念念念被被被被进进一一一一步步步步扩扩大大大大,把把把把每每每每台台台台与与与与主主主主机机机机相相相相连连的的的的输输入入入入输输出出出出设设备备都都都都看看看看作作作作是是是是一一一一个个个个文文文文件件件件。即即即即把把把把实实际际的的的的物物物物理理理理设设备备抽抽抽抽象象象象为为逻逻辑辑文文文文件件件件,它它它它们们被称被称被称被称为为设备设备文件文件文件文件。l l对外外部部设备的的输入入输出出就就是是对设备文文件件的的读写。写。10.1 文件的概述文件的概述10.1.1 10.1.1 文件和文件指文件和文件指文件和文件指文件和文件指针针1.1.什么是文件什么是文件什么是文件

5、什么是文件 2024/5/21 周二4l l按文件存按文件存按文件存按文件存储储数据的形式数据的形式数据的形式数据的形式 ASCIIASCIIASCIIASCII文件(或称文件(或称文件(或称文件(或称文本文件文本文件文本文件文本文件)ASCIIASCII码码文文文文件件件件中中中中每每每每个个个个字字字字节节存存存存放放放放一一一一个个个个ASCIIASCII代代代代码码,代代代代表表表表一一一一个个个个字字字字符符符符,此此此此种种种种存存存存储储形形形形式式式式便便便便于于于于输输出出出出显显示示示示,在在在在DOSDOSDOSDOS操操操操作作作作系系系系统统下可以直接下可以直接下可以

6、直接下可以直接阅读阅读。二二二二进进制文件制文件制文件制文件 二二二二进进制制制制文文文文件件件件中中中中的的的的数数数数据据据据是是是是按按按按照照照照在在在在内内内内存存存存中中中中的的的的二二二二进进制制制制存存存存储储格格格格式式式式存存存存放放放放的的的的,此此此此种种种种存存存存储储形形形形式式式式节节省省省省存存存存储储单单元元元元。二二二二进进制制制制文文文文件件件件在在在在DOSDOSDOSDOS操作系操作系操作系操作系统统下不能直接下不能直接下不能直接下不能直接阅读阅读。10.1 文件的概述文件的概述10.1.1 10.1.1 文件和文件指文件和文件指文件和文件指文件和文件

7、指针针2.2.文件的种文件的种文件的种文件的种类类 2024/5/21 周二5例如将整数例如将整数例如将整数例如将整数1949194919491949分分分分别别存存存存储储在在在在这这两种数据文件中。两种数据文件中。两种数据文件中。两种数据文件中。ASCII文件:文件:ASCII码二二进制文件:制文件:补码占用占用4个字个字节占用占用2个字个字节10.1 文件的概述文件的概述10.1.1 10.1.1 文件和文件指文件和文件指文件和文件指文件和文件指针针2.2.文件的种文件的种文件的种文件的种类类 00110001001100010011100100111001001101000011010

8、0001110010011100111994499000001110000011110011101100111012024/5/21 周二6l l按照按照按照按照对对文件的文件的文件的文件的处处理方式理方式理方式理方式 缓缓冲文件冲文件冲文件冲文件利利利利用用用用缓缓冲冲冲冲文文文文件件件件系系系系统统处处理理理理的的的的文文文文件件件件称称称称为为缓缓冲冲冲冲文文文文件件件件。系系系系统统处处理理理理方方方方法法法法是是是是在在在在内内内内存存存存中中中中为为每每每每个个个个正正正正在在在在使使使使用用用用的的的的缓缓冲冲冲冲文文文文件件件件开开开开辟辟辟辟一一一一个个个个缓缓冲冲冲冲区区区

9、区,其其其其大大大大小小小小是是是是512512个个个个字字字字节节。对对文文文文件件件件读读写写写写数数数数据据据据都都都都通通通通过过缓缓冲区冲区冲区冲区进进行。行。行。行。非非非非缓缓冲文件冲文件冲文件冲文件 利利利利用用用用非非非非缓缓冲冲冲冲文文文文件件件件系系系系统统处处理理理理的的的的文文文文件件件件称称称称为为非非非非缓缓冲冲冲冲文文文文件件件件。系系系系统统处处理理理理非非非非缓缓冲冲冲冲文文文文件件件件时时,不不不不为为文文文文件件件件开开开开辟辟辟辟缓缓冲冲冲冲区区区区,需需需需要要要要程程程程序序序序员员自行自行自行自行设计设计并管理并管理并管理并管理缓缓冲区。冲区。冲

10、区。冲区。83 83 83 83年以后年以后年以后年以后ANSI CANSI CANSI CANSI C标标准中取消了非准中取消了非准中取消了非准中取消了非缓缓冲文件冲文件冲文件冲文件系系系系统统,对对文本文件和二文本文件和二文本文件和二文本文件和二进进制文件均采用制文件均采用制文件均采用制文件均采用缓缓冲文冲文冲文冲文件系件系件系件系统进统进行行行行处处理。理。理。理。10.1 文件的概述文件的概述10.1.1 10.1.1 文件和文件指文件和文件指文件和文件指文件和文件指针针2.2.文件的种文件的种文件的种文件的种类类 2024/5/21 周二7 系系系系统统对对文文文文件件件件的的的的处

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

12、到到到缓缓冲冲冲冲区区区区,待待待待缓缓冲冲冲冲区区区区装装装装满满后后后后,再再再再一一一一起起起起存存存存到到到到磁磁磁磁盘盘文文文文件件件件中。中。中。中。10.1 文件的概述文件的概述10.1.1 10.1.1 文件和文件指文件和文件指文件和文件指文件和文件指针针3.3.缓缓冲文件和文件指冲文件和文件指冲文件和文件指冲文件和文件指针针 磁磁盘文件文件 输出出 输入入图10.2 系系统对缓冲文件的冲文件的处理理 输入入 输出出程序区程序区数据区数据区文件文件缓冲区冲区外存外存内存内存2024/5/21 周二810.1 文件的概述文件的概述10.1.1 10.1.1 文件和文件指文件和文件

13、指文件和文件指文件和文件指针针3.3.缓缓冲文件和文件指冲文件和文件指冲文件和文件指冲文件和文件指针针 l l文件文件类型指型指针在在在在缓缓冲冲冲冲文文文文件件件件系系系系统统中中中中,对对每每每每个个个个正正正正在在在在使使使使用用用用的的的的文文文文件件件件都都都都自自自自动动分分分分配配配配一一一一个个个个FILEFILEFILEFILE类类型型型型的的的的结结构构构构体体体体变变量量量量,用用用用于于于于存存存存放放放放文文文文件件件件的的的的有有有有关关关关信信信信息息息息,如如如如文文文文件件件件号号号号、文文文文件件件件状状状状态态、缓缓冲区地址和大小等。冲区地址和大小等。冲区

14、地址和大小等。冲区地址和大小等。FILEFILEFILEFILE类类型是系型是系型是系型是系统统定定定定义义的,包含在的,包含在的,包含在的,包含在stdio.hstdio.hstdio.hstdio.h头头文件文件文件文件中中中中在在在在C C C C语语言言言言中中中中,无无无无论论对对磁磁磁磁盘盘文文文文件件件件还还是是是是设设备备文文文文件件件件的的的的读读/写写写写都都都都要要要要通通通通过过FILEFILEFILEFILE类类型型型型的的的的结结构构构构体体体体变变量量量量进进行行行行。因因因因此此此此对对于于于于每每每每个个个个使使使使用用用用中中中中的的的的磁磁磁磁盘盘文文文文

15、件件件件必必必必须须先先先先定定定定义义一一一一个个个个FILEFILEFILEFILE类类型的型的型的型的文件指文件指文件指文件指针变针变量量量量并指向并指向并指向并指向此此此此变变量量量量。FILEFILE *文件指文件指文件指文件指针变针变量名量名量名量名;typedef struct short level;/*fill/empty level of buffer*/unsigned flags;/*File status flags */char fd;/*File descriptor */unsigned char hold;/*Ungetc char if no buffer*

16、/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 object*/2024/5/21 周二9 标标准准准准文文文文件件件件是是是是外外外外部部部部设设备备中中中中的的的的三三三三个个个个特

17、特特特殊殊殊殊的的的的设设备备文文文文件件件件。它它它它们们的的的的文文文文件件件件指指指指针针是是是是系系系系统统定定定定义义的的的的,并并并并由由由由系系系系统统自自自自动动打打打打开开开开和和和和关关关关闭闭。这这三个三个三个三个标标准文件分准文件分准文件分准文件分别别是:是:是:是:标标准准准准输输入入入入文文文文件件件件,文文文文件件件件指指指指针针为为stdinstdin,系系系系统统指指指指定定定定为为键盘键盘。标标准准准准输输出出出出文文文文件件件件,文文文文件件件件指指指指针针为为stdoutstdout,系系系系统统指指指指定定定定为为显显示器示器示器示器。标标准准准准错错

18、误误输输出出出出文文文文件件件件,文文文文件件件件指指指指针针为为stderrstderr,系系系系统统指指指指定定定定为为显显示器示器示器示器,输输出出出出错误错误信息。信息。信息。信息。10.1 文件的概述文件的概述 10.1.1 10.1.1 文件和文件指文件和文件指文件和文件指文件和文件指针针 4.4.标标准文件准文件准文件准文件 2024/5/21 周二1010.1 文件的概述文件的概述10.1.2 10.1.2 文件的打开与关文件的打开与关文件的打开与关文件的打开与关闭闭l l操作文件的一般步操作文件的一般步骤 打开文件打开文件打开文件打开文件 读读写文件写文件写文件写文件 关关关

19、关闭闭文件文件文件文件打开文件打开文件打开文件打开文件:建立建立建立建立用用用用户户程序与文件的程序与文件的程序与文件的程序与文件的联联系系系系,为为文件文件文件文件分分分分 配配配配一个文件一个文件一个文件一个文件缓缓冲区。冲区。冲区。冲区。读读写文件写文件写文件写文件:是指:是指:是指:是指对对文件的文件的文件的文件的读读、写写写写、追加追加追加追加和和和和定位定位定位定位操作。操作。操作。操作。关关关关闭闭文件文件文件文件:切断切断切断切断文件与程序的文件与程序的文件与程序的文件与程序的联联系系系系,释释放放放放文件文件文件文件缓缓冲冲冲冲 区。区。区。区。C C语语言的言的言的言的输输

20、入入入入输输出函数出函数出函数出函数库库中提供了大中提供了大中提供了大中提供了大量的函数,用于完成量的函数,用于完成量的函数,用于完成量的函数,用于完成对对数据文件的建立、数据文件的建立、数据文件的建立、数据文件的建立、数据的数据的数据的数据的读读写、数据的追加等操作。写、数据的追加等操作。写、数据的追加等操作。写、数据的追加等操作。在程序中在程序中在程序中在程序中调调用用用用这这些些些些函数函数函数函数时时,必,必,必,必须须先用先用先用先用includeinclude命令包含命令包含命令包含命令包含stdio.hstdio.h文件。文件。文件。文件。2024/5/21 周二11常用的常用的

21、常用的常用的调调用用用用形式:形式:形式:形式:FILE FILE FILE FILE *fpfpfpfp;fp=fopen(fp=fopen(fp=fopen(fp=fopen(文件名文件名文件名文件名,文件使用方式文件使用方式文件使用方式文件使用方式);文件名文件名文件名文件名:需要打开的文件名称:需要打开的文件名称:需要打开的文件名称:需要打开的文件名称(字符串字符串字符串字符串)。文件使用方式文件使用方式文件使用方式文件使用方式:是具有特定含:是具有特定含:是具有特定含:是具有特定含义义的的的的符号符号符号符号。10.1 文件的概述文件的概述 10.1.2 10.1.2 文件的打开与关

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

23、个FILEFILEFILEFILE类类型型型型指指指指针针;若文件打开若文件打开若文件打开若文件打开失失失失败败,返回,返回,返回,返回NULLNULLNULLNULL。2024/5/21 周二12l l文本文件的三种基本使用方式文本文件的三种基本使用方式文本文件的三种基本使用方式文本文件的三种基本使用方式”r r r r”:只只读方式方式 为读(输入入)文文本本文文件件打打开开文文件件。若若文文件件不不存存在在,返回返回NULLNULL。”w w w w”:只写方式只写方式 为写写(输出出)文文本本文文件件打打开开文文件件。若若文文件件不不存存在在,则建立一个新文件;若建立一个新文件;若文件

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

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

26、已已已已存存存存在在在在,则保保保保持持持持原原来来文文件件的的内内内内容容容容,将将新新的的数数据据增增增增加加加加到到原原来来数数据据的的后面后面后面后面;若文件不存在,;若文件不存在,则返回返回NULLNULLNULLNULL。10.1 文件的概述文件的概述 10.1.2 10.1.2 文件的打开与关文件的打开与关文件的打开与关文件的打开与关闭闭2024/5/21 周二1410.1 文件的概述文件的概述 10.1.2 10.1.2 文件的打开与关文件的打开与关文件的打开与关文件的打开与关闭闭l l文件的其他打开方式文件的其他打开方式文件的其他打开方式文件的其他打开方式”r r r r+”

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

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

29、2024/5/21 周二15l 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 file.n”);exit(0)exit(0)exit

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

31、024/5/21 周二16常用的常用的调用用形式:形式: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(fclose(fclose(fclose()函数功能:函数功能:关关关关闭闭fpfpfpfp指定的文件,指定的文件,指定的文

32、件,指定的文件,释释放放放放该该文件的文件的文件的文件的缓缓冲区、冲区、冲区、冲区、FILEFILEFILEFILE类类型型型型变变量及文件指量及文件指量及文件指量及文件指针针。若文件关若文件关若文件关若文件关闭闭成功,成功,成功,成功,则则返回返回返回返回0 0 0 0;若文件关若文件关若文件关若文件关闭闭失失失失败败,则则返回返回返回返回非非非非0 0 0 0值值。2024/5/21 周二17常用的常用的调用用形式:形式:FILE FILE FILE FILE *fpfpfpfp;fputc(fputc(fputc(fputc(chchchch,fpfpfpfp);chchchch:需要需

33、要需要需要输输出的字符,可以是字符常量或字符出的字符,可以是字符常量或字符出的字符,可以是字符常量或字符出的字符,可以是字符常量或字符变变量;量;量;量;fp fp fp fp:文件指:文件指:文件指:文件指针变针变量量量量。对对文文文文本本本本文文文文件件件件的的的的读读写写写写操操操操作作作作,必必必必须须按按按按文文文文件件件件中中中中字字字字符符符符的的的的先先先先后后后后顺顺序序序序进进行行行行,只只只只能能能能在在在在操操操操作作作作了了了了第第第第i i i i个个个个字符之后,才能操作第字符之后,才能操作第字符之后,才能操作第字符之后,才能操作第i i i i+1+1+1+1个

34、字符。个字符。个字符。个字符。在在在在对对文文文文件件件件操操操操作作作作时时,文文文文件件件件的的的的读读写写写写指指指指针针由由由由系系系系统统自自自自动动向后向后向后向后移移移移动动。10.2 文本文件的文本文件的读写写 10.2.1 10.2.1 文件的字符文件的字符文件的字符文件的字符输输入入入入输输出函数出函数出函数出函数 1.1.字符字符字符字符输输出函数出函数出函数出函数fputc(fputc(fputc(fputc()(或或或或putc(putc(putc(putc())函数功能:函数功能:将一个字符(将一个字符(将一个字符(将一个字符(ASCIIASCIIASCIIASCI

35、I码码)写入到)写入到)写入到)写入到fpfpfpfp所指向的文件(所指向的文件(所指向的文件(所指向的文件(该该文件文件文件文件必必必必须须是以写或是以写或是以写或是以写或读读写方式打开的)中。写方式打开的)中。写方式打开的)中。写方式打开的)中。若若若若输输出操作成功,函数返回写入的字符;否出操作成功,函数返回写入的字符;否出操作成功,函数返回写入的字符;否出操作成功,函数返回写入的字符;否则则,返回,返回,返回,返回EOFEOFEOFEOF。系系统定定义的文本文件的文本文件结束束标志,其志,其值为(-1)。putcputc函函函函数数数数与与与与fputcfputc函函函函数数数数的的的

36、的功功功功能能能能相相相相同同同同。在在在在stdio.hstdio.h文文文文件中被定件中被定件中被定件中被定义为义为#define putc(c,f)fputc(c),f)define putc(c,f)fputc(c),f)标标准准准准文文文文件件件件中中中中用用用用的的的的putcharputchar函函函函数数数数是是是是fputcfputc函函函函数数数数的的的的特特特特殊用法,它在殊用法,它在殊用法,它在殊用法,它在stdio.hstdio.h文件中被定文件中被定文件中被定文件中被定义为义为#define putchar(c)putc(c),stdout)define putch

37、ar(c)putc(c),stdout)2024/5/21 周二18常用的常用的调用用形式:形式:FILE FILE FILE FILE *fpfpfpfp;chchchch =fgetcfgetcfgetcfgetc(fpfpfpfp);chchchch:可以是字符可以是字符可以是字符可以是字符变变量或整型量或整型量或整型量或整型变变量;量;量;量;fp fp fp fp:文件指:文件指:文件指:文件指针变针变量量量量。10.2 文本文件的文本文件的读写写 10.2.1 10.2.1 文件的字符文件的字符文件的字符文件的字符输输入入入入输输出函数出函数出函数出函数 2.2.字符字符字符字符输

38、输入函数入函数入函数入函数fgetc(fgetc(fgetc(fgetc()(或或或或getc(getc(getc(getc())函数功能:函数功能:从从从从fpfpfpfp所指向的文件(所指向的文件(所指向的文件(所指向的文件(该该文件必文件必文件必文件必须须是以是以是以是以读读或或或或读读写方式打开写方式打开写方式打开写方式打开的)中的)中的)中的)中读读取一个字符。取一个字符。取一个字符。取一个字符。若若若若输输入操作成功,函数返回入操作成功,函数返回入操作成功,函数返回入操作成功,函数返回读读入的字符;入的字符;入的字符;入的字符;若文件若文件若文件若文件结结束或束或束或束或输输入操作

39、失入操作失入操作失入操作失败败,则则返回返回返回返回EOFEOFEOFEOF。getcgetc函函函函数数数数与与与与fgetcfgetc函函函函数数数数的的的的功功功功能能能能相相相相同同同同。在在在在stdio.hstdio.h文文文文件中被定件中被定件中被定件中被定义为义为#define getc(f)fgetc(f)define getc(f)fgetc(f)标标准准准准文文文文件件件件中中中中用用用用的的的的getchargetchar函函函函数数数数是是是是fgetcfgetc函函函函数数数数的的的的特特特特殊用法,它在殊用法,它在殊用法,它在殊用法,它在stdio.hstdio.

40、h文件中被定文件中被定文件中被定文件中被定义为义为#define getchar()getc(stdin)define getchar()getc(stdin)2024/5/21 周二19【例例例例10.110.1】利利利利用用用用fputcfputc和和和和fgetcfgetc函函函函数数数数建建建建立立立立一一一一个个个个文文文文本本本本文文文文件件件件,并并并并显显示示示示文件中的内容。文件中的内容。文件中的内容。文件中的内容。#include include main()main()FILE FILE*fpfp;/*;/*定定定定义义一个文件指一个文件指一个文件指一个文件指针变针变量量

41、量量fp fp fp fp*/*/int c;/*c int c;/*c为为存放字符的存放字符的存放字符的存放字符的变变量量量量*/*/char filename40;/*filenamechar filename40;/*filename用于存放数据文件名用于存放数据文件名用于存放数据文件名用于存放数据文件名*/*/printf(filename:);/*printf(filename:);/*提示提示提示提示输输入磁入磁入磁入磁盘盘文件名文件名文件名文件名*/*/gets(filename);gets(filename);if(if(fpfp=fopen(filename,=fopen(f

42、ilename,w w)=NULL)=NULL)printf(Cant open the%sn,filename);printf(Cant open the%sn,filename);exit(0);exit(0);10.2 文本文件的文本文件的读写写 10.2.1 10.2.1 文件的字符文件的字符文件的字符文件的字符输输入入入入输输出函数出函数出函数出函数测试打开文件打开文件是否成功是否成功2024/5/21 周二20while(c=getchar()!=EOF)while(c=getchar()!=EOF)/*/*键盘键盘文件文件文件文件结结束束束束标标志:志:志:志:输输入入入入Ctr

43、l+zCtrl+z,显显示示示示 Z Z后回后回后回后回车车*/*/putc(c,putc(c,fpfp);/*);/*将将将将键盘输键盘输入的字符写到文件中入的字符写到文件中入的字符写到文件中入的字符写到文件中*/*/fclose(fclose(fpfp);/*);/*建立文件建立文件建立文件建立文件结结束,关束,关束,关束,关闭闭文件文件文件文件*/*/printf(outfile:n);printf(outfile:n);fpfp=fopen(filename,=fopen(filename,r r);/*);/*以以以以读读方式打开文本文件方式打开文本文件方式打开文本文件方式打开文本文

44、件*/*/while(c=getc(while(c=getc(fpfp)!=EOF)/*)!=EOF)/*未未未未读读到文件到文件到文件到文件结结束束束束标标志志志志时时 */*/putchar(c);/*putchar(c);/*在在在在显显示器示器示器示器显显示示示示读读出的字符出的字符出的字符出的字符*/*/fclose(fclose(fpfp);/*);/*读读文件文件文件文件结结束,关束,关束,关束,关闭闭文件文件文件文件*/*/10.2 文本文件的文本文件的读写写 10.2.1 10.2.1 文件的字符文件的字符文件的字符文件的字符输输入入入入输输出函数出函数出函数出函数2024/

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

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

47、。2024/5/21 周二22例如例如例如例如:复制一个磁复制一个磁复制一个磁复制一个磁盘盘文件。文件。文件。文件。#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 4 4 4 40000;intintintint chchch

48、ch;printf(printf(printf(printf(i i i in n n np p p pu u u ut filename:t filename:t filename:t filename:);scanf();scanf();scanf();scanf(%s%s%s%s,ininininfilefilefilefile););););printf(printf(printf(printf(o o o outpuutpuutpuutput filename:t filename:t filename:t filename:);scanf();scanf();scanf();sca

49、nf(%s%s%s%s,o o o oututututfilefilefilefile););););if(if(if(if(i i i in n n nfpfpfpfp=fopenfopenfopenfopen(i i i in n n nfilefilefilefile,r r r r)=)=)=)=NULLNULLNULLNULL)/*/*/*/*打开源文件打开源文件打开源文件打开源文件 */*/*/*/printf(printf(printf(printf(ininininfile open error.nfile open error.nfile open error.nfile o

50、pen error.n););););exit(0);exit(0);exit(0);exit(0);if(if(if(if(o o o oututututfpfpfpfp=fopenfopenfopenfopen(o o o oututututfilefilefilefile,w w w w)=)=)=)=NULLNULLNULLNULL)/*/*/*/*打开目打开目打开目打开目标标文件文件文件文件 */*/*/*/printf(printf(printf(printf(outoutoutoutfile open error.nfile open error.nfile open error

展开阅读全文
部分上传会员的收益排行 01、路***(¥15400+),02、曲****(¥15300+),
03、wei****016(¥13200+),04、大***流(¥12600+),
05、Fis****915(¥4200+),06、h****i(¥4100+),
07、Q**(¥3400+),08、自******点(¥2400+),
09、h*****x(¥1400+),10、c****e(¥1100+),
11、be*****ha(¥800+),12、13********8(¥800+)。
相似文档                                   自信AI助手自信AI助手
搜索标签

当前位置:首页 > 考试专区 > 中考

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服