C程序设计课件第10章.ppt

上传人:wuy****n92 文档编号:70104775 上传时间:2023-01-16 格式:PPT 页数:51 大小:337.49KB
返回 下载 相关 举报
C程序设计课件第10章.ppt_第1页
第1页 / 共51页
C程序设计课件第10章.ppt_第2页
第2页 / 共51页
点击查看更多>>
资源描述

《C程序设计课件第10章.ppt》由会员分享,可在线阅读,更多相关《C程序设计课件第10章.ppt(51页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、第十章第十章 文件文件n n文件概述文件概述 n n文件操作文件操作 n n文件操作实例文件操作实例n n本章小结本章小结 文件概述文件概述n n文件是为了某种目的系统的把数据组织起来而构成的数文件是为了某种目的系统的把数据组织起来而构成的数文件是为了某种目的系统的把数据组织起来而构成的数文件是为了某种目的系统的把数据组织起来而构成的数据集合体据集合体据集合体据集合体n n从实现角度看:文件往往与外部没备、磁盘上的文件联从实现角度看:文件往往与外部没备、磁盘上的文件联从实现角度看:文件往往与外部没备、磁盘上的文件联从实现角度看:文件往往与外部没备、磁盘上的文件联系在一起,也就是与计算机操作系统

2、的文件联系在一起系在一起,也就是与计算机操作系统的文件联系在一起系在一起,也就是与计算机操作系统的文件联系在一起系在一起,也就是与计算机操作系统的文件联系在一起n n人们往往需要加工处理各式各样的数据,连接各种各样人们往往需要加工处理各式各样的数据,连接各种各样人们往往需要加工处理各式各样的数据,连接各种各样人们往往需要加工处理各式各样的数据,连接各种各样的外部设备。这些数据和设备是千差万别的。的外部设备。这些数据和设备是千差万别的。的外部设备。这些数据和设备是千差万别的。的外部设备。这些数据和设备是千差万别的。n n为了处理的统一与概念的简化,操作系统把这些外部数为了处理的统一与概念的简化,

3、操作系统把这些外部数为了处理的统一与概念的简化,操作系统把这些外部数为了处理的统一与概念的简化,操作系统把这些外部数据、外部设备一律作为文件来管理。据、外部设备一律作为文件来管理。据、外部设备一律作为文件来管理。据、外部设备一律作为文件来管理。n n程序设计语言中管理的文件,就是计算机操作系统中的程序设计语言中管理的文件,就是计算机操作系统中的程序设计语言中管理的文件,就是计算机操作系统中的程序设计语言中管理的文件,就是计算机操作系统中的文件。文件。文件。文件。n n文件分类文件分类文件分类文件分类文件是程序设计中的一个重要概念,从不同的角度文件是程序设计中的一个重要概念,从不同的角度文件是程

4、序设计中的一个重要概念,从不同的角度文件是程序设计中的一个重要概念,从不同的角度看文件可以分成不同的看文件可以分成不同的看文件可以分成不同的看文件可以分成不同的从操作角度看从操作角度看从操作角度看从操作角度看顺序文件顺序文件顺序文件顺序文件随机文件随机文件随机文件随机文件从用户角度看从用户角度看从用户角度看从用户角度看普通文件普通文件普通文件普通文件设备文件设备文件设备文件设备文件从文件内部编码方式看从文件内部编码方式看从文件内部编码方式看从文件内部编码方式看ASCIIASCII文件文件文件文件二进制文件二进制文件二进制文件二进制文件n n文件名文件名文件名文件名文件名是文件的唯一标识,它的一

5、般结构是文件名是文件的唯一标识,它的一般结构是文件名是文件的唯一标识,它的一般结构是文件名是文件的唯一标识,它的一般结构是主文件名主文件名主文件名主文件名.扩展名扩展名扩展名扩展名其中的扩展名可以省略,但通常都保留。其中的扩展名可以省略,但通常都保留。其中的扩展名可以省略,但通常都保留。其中的扩展名可以省略,但通常都保留。n n因为通过扩展名,可以判断文件类型。例如因为通过扩展名,可以判断文件类型。例如因为通过扩展名,可以判断文件类型。例如因为通过扩展名,可以判断文件类型。例如.c C.c C语言的源程序文件语言的源程序文件语言的源程序文件语言的源程序文件.txt .txt 文本文件文本文件文

6、本文件文本文件.doc word.doc word文档文件文档文件文档文件文档文件n n文件名分为文件名分为绝对文件名绝对文件名绝对文件名绝对文件名从磁盘盘符开始描述的文件名从磁盘盘符开始描述的文件名从磁盘盘符开始描述的文件名从磁盘盘符开始描述的文件名相对文件名相对文件名相对文件名相对文件名从计算机操作系统中文件系统的某个节点开始描述的从计算机操作系统中文件系统的某个节点开始描述的从计算机操作系统中文件系统的某个节点开始描述的从计算机操作系统中文件系统的某个节点开始描述的文件名文件名文件名文件名n n 例如:例如:E:docprogramingtest.c E:docprogramingtes

7、t.c 表示绝对文件名表示绝对文件名表示绝对文件名表示绝对文件名 test.c test.c 表示相对于节表示相对于节表示相对于节表示相对于节 E:docprograming E:docprograming的相对文件名的相对文件名的相对文件名的相对文件名顺序文件和随机文件顺序文件和随机文件n n顺序文件的特点:文件分成两种模式顺序文件的特点:文件分成两种模式顺序文件的特点:文件分成两种模式顺序文件的特点:文件分成两种模式 读模式读模式读模式读模式 写模式写模式写模式写模式n n在任意时刻,一个顺序文件只能处于两种模式之一。当在任意时刻,一个顺序文件只能处于两种模式之一。当在任意时刻,一个顺序文

8、件只能处于两种模式之一。当在任意时刻,一个顺序文件只能处于两种模式之一。当一个顺序文件处于读模式时,只能从该文件读数据。一个顺序文件处于读模式时,只能从该文件读数据。一个顺序文件处于读模式时,只能从该文件读数据。一个顺序文件处于读模式时,只能从该文件读数据。n n反之,当一个顺序文件处于写模式时,只能向该文件写反之,当一个顺序文件处于写模式时,只能向该文件写反之,当一个顺序文件处于写模式时,只能向该文件写反之,当一个顺序文件处于写模式时,只能向该文件写数据。数据。数据。数据。n n从操作角度看,顺序文件只能顺序操作。从操作角度看,顺序文件只能顺序操作。从操作角度看,顺序文件只能顺序操作。从操作

9、角度看,顺序文件只能顺序操作。n n对于读来讲,顺序文件只能从文件第一成分开始顺序的,对于读来讲,顺序文件只能从文件第一成分开始顺序的,对于读来讲,顺序文件只能从文件第一成分开始顺序的,对于读来讲,顺序文件只能从文件第一成分开始顺序的,一个成分接一个成分的读数据。一个成分接一个成分的读数据。一个成分接一个成分的读数据。一个成分接一个成分的读数据。n n对于写来讲,顺序文件只能在文件尾一个成分接一个成对于写来讲,顺序文件只能在文件尾一个成分接一个成对于写来讲,顺序文件只能在文件尾一个成分接一个成对于写来讲,顺序文件只能在文件尾一个成分接一个成分的向文件里写数据,每次写进的成分都放在文件末尾分的向

10、文件里写数据,每次写进的成分都放在文件末尾分的向文件里写数据,每次写进的成分都放在文件末尾分的向文件里写数据,每次写进的成分都放在文件末尾n n随机文件的特点是:对文件的操作是随机随机文件的特点是:对文件的操作是随机随机文件的特点是:对文件的操作是随机随机文件的特点是:对文件的操作是随机n n在同一时刻,即可以向文件中写,也可以从文件在同一时刻,即可以向文件中写,也可以从文件在同一时刻,即可以向文件中写,也可以从文件在同一时刻,即可以向文件中写,也可以从文件中读(文件没有读写模式之分)。中读(文件没有读写模式之分)。中读(文件没有读写模式之分)。中读(文件没有读写模式之分)。n n读写操作可以

11、针对文件中任意成分进行。读写操作可以针对文件中任意成分进行。读写操作可以针对文件中任意成分进行。读写操作可以针对文件中任意成分进行。n n例如例如例如例如第一次读了第第一次读了第第一次读了第第一次读了第100100个成分个成分个成分个成分然后再读第然后再读第然后再读第然后再读第3 3个成分个成分个成分个成分然后再用一个新的数据修改第然后再用一个新的数据修改第然后再用一个新的数据修改第然后再用一个新的数据修改第50 50 成分成分成分成分将其写入第将其写入第将其写入第将其写入第5050个成分中个成分中个成分中个成分中然后又读第然后又读第然后又读第然后又读第200200个成分个成分个成分个成分.,

12、等等。,等等。,等等。,等等。这是允许的,并且是正确的。这是允许的,并且是正确的。这是允许的,并且是正确的。这是允许的,并且是正确的。普通文件和设备文件普通文件和设备文件n n普通文件是指驻留在磁盘或其它外部介质上的一普通文件是指驻留在磁盘或其它外部介质上的一普通文件是指驻留在磁盘或其它外部介质上的一普通文件是指驻留在磁盘或其它外部介质上的一个有序数据集,可以是源程序文件、目标程序文个有序数据集,可以是源程序文件、目标程序文个有序数据集,可以是源程序文件、目标程序文个有序数据集,可以是源程序文件、目标程序文件、可执行程序文件;也可以是一组待输入处理件、可执行程序文件;也可以是一组待输入处理件、

13、可执行程序文件;也可以是一组待输入处理件、可执行程序文件;也可以是一组待输入处理的原始数据,或者是一组输出的结果。的原始数据,或者是一组输出的结果。的原始数据,或者是一组输出的结果。的原始数据,或者是一组输出的结果。n n设备文件是指与主机相联的各种外部设备,如显设备文件是指与主机相联的各种外部设备,如显设备文件是指与主机相联的各种外部设备,如显设备文件是指与主机相联的各种外部设备,如显示器、打印机、键盘等。示器、打印机、键盘等。示器、打印机、键盘等。示器、打印机、键盘等。n n在操作系统中,把外部设备也作为文件来进行管在操作系统中,把外部设备也作为文件来进行管在操作系统中,把外部设备也作为文

14、件来进行管在操作系统中,把外部设备也作为文件来进行管理,把它们的输入、输出等同于对磁盘文件的读理,把它们的输入、输出等同于对磁盘文件的读理,把它们的输入、输出等同于对磁盘文件的读理,把它们的输入、输出等同于对磁盘文件的读和写。通常显示器定义为标准输出文件,键盘是和写。通常显示器定义为标准输出文件,键盘是和写。通常显示器定义为标准输出文件,键盘是和写。通常显示器定义为标准输出文件,键盘是标准输入文件标准输入文件标准输入文件标准输入文件 ASCII文件和二进制文件文件和二进制文件n nASCIIASCII文件就是文件就是文件就是文件就是ASCIIASCII码文件,也称为文本文件、码文件,也称为文本

15、文件、码文件,也称为文本文件、码文件,也称为文本文件、TEXTTEXT文文文文件。件。件。件。这种文件每个字符对应一个字节,用于存放相应字符这种文件每个字符对应一个字节,用于存放相应字符这种文件每个字符对应一个字节,用于存放相应字符这种文件每个字符对应一个字节,用于存放相应字符的的的的ASCIIASCII码,也就是存放字符的存储形态的编码。码,也就是存放字符的存储形态的编码。码,也就是存放字符的存储形态的编码。码,也就是存放字符的存储形态的编码。n n字符字符字符字符1 1、2 2、3 3、4 4的的的的ASCIIASCII码分别为码分别为码分别为码分别为4949、5050、5151、5252

16、(十六(十六(十六(十六进制的进制的进制的进制的3131、3232、3333、3434),字符串),字符串),字符串),字符串“1234”“1234”的存储形式为:的存储形式为:的存储形式为:的存储形式为:n n共占用共占用共占用共占用4 4个字节。个字节。个字节。个字节。ASCIIASCII文件可以在屏幕上按字符显示,文件可以在屏幕上按字符显示,文件可以在屏幕上按字符显示,文件可以在屏幕上按字符显示,例如源程序文件就是例如源程序文件就是例如源程序文件就是例如源程序文件就是ASCIIASCII文件,用文件,用文件,用文件,用DOSDOS命令命令命令命令TYPETYPE可以可以可以可以显示文件的

17、内容。由于是按字符显示,因此能读懂文件内显示文件的内容。由于是按字符显示,因此能读懂文件内显示文件的内容。由于是按字符显示,因此能读懂文件内显示文件的内容。由于是按字符显示,因此能读懂文件内容。容。容。容。n n二进制文件就是二进制码文件,它把数据按二进二进制文件就是二进制码文件,它把数据按二进二进制文件就是二进制码文件,它把数据按二进二进制文件就是二进制码文件,它把数据按二进制编码方式存放到文件中。例如,数制编码方式存放到文件中。例如,数制编码方式存放到文件中。例如,数制编码方式存放到文件中。例如,数12341234的存储的存储的存储的存储形式为:形式为:形式为:形式为:只占二个字节。只占二

18、个字节。只占二个字节。只占二个字节。n n用用用用TYPETYPE命令显示二进制文件是无意义的,其内容命令显示二进制文件是无意义的,其内容命令显示二进制文件是无意义的,其内容命令显示二进制文件是无意义的,其内容无法读懂无法读懂无法读懂无法读懂。流式文件流式文件n nC C系统的文件操作,不区分文件类别。不论系统的文件操作,不区分文件类别。不论系统的文件操作,不区分文件类别。不论系统的文件操作,不区分文件类别。不论 顺序文件还是随机文件、顺序文件还是随机文件、顺序文件还是随机文件、顺序文件还是随机文件、普通文件还是设备文件、普通文件还是设备文件、普通文件还是设备文件、普通文件还是设备文件、ASC

19、II ASCII文件还是二进制文件。文件还是二进制文件。文件还是二进制文件。文件还是二进制文件。n nC C把文件一律都看成是把文件一律都看成是把文件一律都看成是把文件一律都看成是“字节流字节流字节流字节流”,以字节(每个字节可能,以字节(每个字节可能,以字节(每个字节可能,以字节(每个字节可能是一个字符,也可能是一个二进制代码)为单位进行操作是一个字符,也可能是一个二进制代码)为单位进行操作是一个字符,也可能是一个二进制代码)为单位进行操作是一个字符,也可能是一个二进制代码)为单位进行操作处理。处理。处理。处理。n n对字节流的操作;输入输出的开始和结束都由程序控制,对字节流的操作;输入输出

20、的开始和结束都由程序控制,对字节流的操作;输入输出的开始和结束都由程序控制,对字节流的操作;输入输出的开始和结束都由程序控制,不受物理符号不受物理符号不受物理符号不受物理符号(如回车符如回车符如回车符如回车符)的影响。把这种文件操作方式称的影响。把这种文件操作方式称的影响。把这种文件操作方式称的影响。把这种文件操作方式称作作作作“流式文件流式文件流式文件流式文件”。文件指针文件指针n nC C 系统为了处理文件,为每个文件在内存中开辟一个区域,系统为了处理文件,为每个文件在内存中开辟一个区域,系统为了处理文件,为每个文件在内存中开辟一个区域,系统为了处理文件,为每个文件在内存中开辟一个区域,用

21、来存放文件的有关信息,如文件名、文件状态以及文件当用来存放文件的有关信息,如文件名、文件状态以及文件当用来存放文件的有关信息,如文件名、文件状态以及文件当用来存放文件的有关信息,如文件名、文件状态以及文件当前位置等。前位置等。前位置等。前位置等。n n这个区域被作成一个称为这个区域被作成一个称为这个区域被作成一个称为这个区域被作成一个称为 FILE FILE 类型的结构体。类型的结构体。类型的结构体。类型的结构体。FILE FILE 的类的类的类的类型由系统定义,保存在头文件型由系统定义,保存在头文件型由系统定义,保存在头文件型由系统定义,保存在头文件 stdio.h stdio.h 中,它的

22、具体结构我中,它的具体结构我中,它的具体结构我中,它的具体结构我们暂时不用关心。们暂时不用关心。们暂时不用关心。们暂时不用关心。n nC C 程序中用指向程序中用指向程序中用指向程序中用指向 FILE FILE 类型变量的指针变量类型变量的指针变量类型变量的指针变量类型变量的指针变量(简称简称简称简称“文件指文件指文件指文件指针针针针”)”)来标识具体文件。变量声明来标识具体文件。变量声明来标识具体文件。变量声明来标识具体文件。变量声明 FILE *fp;FILE *fp;n n声明了一个文件指针变量声明了一个文件指针变量声明了一个文件指针变量声明了一个文件指针变量 fp fp,以后,以后,以

23、后,以后 fp fp 可以用来标识具体可以用来标识具体可以用来标识具体可以用来标识具体文件。文件。文件。文件。标记标记n nC C文件是一个流式文件,在该字节流上有一个隐含的暗文件是一个流式文件,在该字节流上有一个隐含的暗文件是一个流式文件,在该字节流上有一个隐含的暗文件是一个流式文件,在该字节流上有一个隐含的暗标记,该标记总是指向文件中正要操作的字节,即下一标记,该标记总是指向文件中正要操作的字节,即下一标记,该标记总是指向文件中正要操作的字节,即下一标记,该标记总是指向文件中正要操作的字节,即下一个字节,个字节,个字节,个字节,称该标记为文件读写位置指针称该标记为文件读写位置指针称该标记为

24、文件读写位置指针称该标记为文件读写位置指针。n n例如:例如:例如:例如:指向文件首,即指向第一个字节指向文件首,即指向第一个字节指向文件首,即指向第一个字节指向文件首,即指向第一个字节 指向第四个字节;指向第四个字节;指向第四个字节;指向第四个字节;.指向文件尾;指向文件尾;指向文件尾;指向文件尾;n几个常量几个常量 C系统引进几个常量标志文件处理状态。最系统引进几个常量标志文件处理状态。最常用的是常用的是 EOF 和和 NULL,它们是,它们是 stdio.h 中预定义的常量。中预定义的常量。EOF:值为:值为“-1”习惯上表示文件结束,或文件操作出错;习惯上表示文件结束,或文件操作出错;

25、NULL:值为:值为“0”习惯上表示打开文件失败等。习惯上表示打开文件失败等。文件操作文件操作n nC C没有文件操作语句,没有文件操作语句,没有文件操作语句,没有文件操作语句,C C文件操作全部通过系统定义的文件操作全部通过系统定义的文件操作全部通过系统定义的文件操作全部通过系统定义的库函数来实现。库函数来实现。库函数来实现。库函数来实现。n n“库函数库函数库函数库函数”是指系统已经定义好的,存放在是指系统已经定义好的,存放在是指系统已经定义好的,存放在是指系统已经定义好的,存放在“函数库函数库函数库函数库”文件内的,可以被用户直接调用的函数。这些库函数根文件内的,可以被用户直接调用的函数

26、。这些库函数根文件内的,可以被用户直接调用的函数。这些库函数根文件内的,可以被用户直接调用的函数。这些库函数根据其功能的不同,存放在不同的函数库中。据其功能的不同,存放在不同的函数库中。据其功能的不同,存放在不同的函数库中。据其功能的不同,存放在不同的函数库中。n n 库函数本身并不属于语言,它是系统根据需要提供给库函数本身并不属于语言,它是系统根据需要提供给库函数本身并不属于语言,它是系统根据需要提供给库函数本身并不属于语言,它是系统根据需要提供给用户使用的函数。用户使用的函数。用户使用的函数。用户使用的函数。C C 标准定义了常用的函数库和每个函标准定义了常用的函数库和每个函标准定义了常用

27、的函数库和每个函标准定义了常用的函数库和每个函数库中常用的库函数。但是不同的编译系统提供的函数数库中常用的库函数。但是不同的编译系统提供的函数数库中常用的库函数。但是不同的编译系统提供的函数数库中常用的库函数。但是不同的编译系统提供的函数库不同,不同编译系统在每个函数库中提供的库函数也库不同,不同编译系统在每个函数库中提供的库函数也库不同,不同编译系统在每个函数库中提供的库函数也库不同,不同编译系统在每个函数库中提供的库函数也不同。为了提高程序的可移植性,用户应该只使用不同。为了提高程序的可移植性,用户应该只使用不同。为了提高程序的可移植性,用户应该只使用不同。为了提高程序的可移植性,用户应该

28、只使用 C C 标准定义的函数库和库函数。标准定义的函数库和库函数。标准定义的函数库和库函数。标准定义的函数库和库函数。n n对应每个函数库,有一个头文件,在头文件中包对应每个函数库,有一个头文件,在头文件中包对应每个函数库,有一个头文件,在头文件中包对应每个函数库,有一个头文件,在头文件中包含相应函数库中所有函数的函数原型。用户使用含相应函数库中所有函数的函数原型。用户使用含相应函数库中所有函数的函数原型。用户使用含相应函数库中所有函数的函数原型。用户使用库函数时,需要把相应的头文件用库函数时,需要把相应的头文件用库函数时,需要把相应的头文件用库函数时,需要把相应的头文件用#include#

29、include 命命命命令括入到自己的程序文件中。令括入到自己的程序文件中。令括入到自己的程序文件中。令括入到自己的程序文件中。n n文件操作函数库的头文件是文件操作函数库的头文件是文件操作函数库的头文件是文件操作函数库的头文件是“stdio.h”“stdio.h”,在用户,在用户,在用户,在用户程序中只要涉及文件操作,即只要涉及输入输出程序中只要涉及文件操作,即只要涉及输入输出程序中只要涉及文件操作,即只要涉及输入输出程序中只要涉及文件操作,即只要涉及输入输出就应该把该文件括入程序中,使用的程序行是:就应该把该文件括入程序中,使用的程序行是:就应该把该文件括入程序中,使用的程序行是:就应该把

30、该文件括入程序中,使用的程序行是:#include stdio.h#include stdio.hn n这就是为什么前述各个章节的程序都含有这一行这就是为什么前述各个章节的程序都含有这一行这就是为什么前述各个章节的程序都含有这一行这就是为什么前述各个章节的程序都含有这一行的原因。的原因。的原因。的原因。任何高级语言,对文件操作都应该遵循:任何高级语言,对文件操作都应该遵循:打开文件打开文件 操作文件操作文件 关闭文件关闭文件这样的过程。这样的过程。下面就遵循这个规则对文件的操作进行说明下面就遵循这个规则对文件的操作进行说明 打开文件打开文件n n函数原型函数原型函数原型函数原型 FILE*fo

31、pen(const char*FILE*fopen(const char*filenamefilename,const char*const char*mode mode););n n调用方式调用方式调用方式调用方式 fp=fopen(filename fp=fopen(filename,mode);mode);filename filename 是一个字符串,具体给出要打开的文件的是一个字符串,具体给出要打开的文件的是一个字符串,具体给出要打开的文件的是一个字符串,具体给出要打开的文件的文件名;文件名;文件名;文件名;mode mode 也是一个字符串,具体给出文件的打开模式也是一个字符串,

32、具体给出文件的打开模式也是一个字符串,具体给出文件的打开模式也是一个字符串,具体给出文件的打开模式,表表表表12-112-1列出各种打开模式;列出各种打开模式;列出各种打开模式;列出各种打开模式;fp fp 是文件指针变量,以后程序中使用该指针变量标是文件指针变量,以后程序中使用该指针变量标是文件指针变量,以后程序中使用该指针变量标是文件指针变量,以后程序中使用该指针变量标识由文件名给出的文件。识由文件名给出的文件。识由文件名给出的文件。识由文件名给出的文件。n nfopen fopen 根据根据根据根据 mode mode 指定的模式,打开由指定的模式,打开由指定的模式,打开由指定的模式,打

33、开由filenamefilename指定指定指定指定的文件。的文件。的文件。的文件。n n例如:例如:例如:例如:fp=fopen(c:userfile.txt,r);fp=fopen(c:userfile.txt,r);以以以以“只读只读只读只读”方式,打开方式,打开方式,打开方式,打开 c c 盘盘盘盘 user user 节点下的节点下的节点下的节点下的 file.txt file.txt 文文文文件。如果成功则件。如果成功则件。如果成功则件。如果成功则 fp fp 就是文件就是文件就是文件就是文件 file.txt file.txt 的文件指针变量,的文件指针变量,的文件指针变量,的文

34、件指针变量,并且只允许对文件进行读操作;否则并且只允许对文件进行读操作;否则并且只允许对文件进行读操作;否则并且只允许对文件进行读操作;否则 fp fp 的值是的值是的值是的值是 NULL NULL。下表下表下表下表给给给给出文件打开模式出文件打开模式出文件打开模式出文件打开模式 mode mode mode mode 及其含及其含及其含及其含义义义义。序号序号序号序号modemode含义含义含义含义1 1 1 1“r”“r”“r”“r”以只以只以只以只读读读读方式打开一个方式打开一个方式打开一个方式打开一个ASCIIASCIIASCIIASCII文件文件文件文件2 2 2 2“w”“w”“w

35、”“w”以只写方式打开或新建一个以只写方式打开或新建一个以只写方式打开或新建一个以只写方式打开或新建一个ASCIIASCIIASCIIASCII文件,原文件,原文件,原文件,原有文件内容全部有文件内容全部有文件内容全部有文件内容全部删删删删除除除除3 3 3 3“a”“a”“a”“a”同同同同“w”“w”“w”“w”,但是不,但是不,但是不,但是不删删删删除原有文件内容除原有文件内容除原有文件内容除原有文件内容4 4 4 4“r+”“r+”“r+”“r+”以可以可以可以可读读读读可写方式打开一个可写方式打开一个可写方式打开一个可写方式打开一个ASCIIASCIIASCIIASCII文件文件文件

36、文件5 5 5 5“w+”“w+”“w+”“w+”以可以可以可以可读读读读可写方式打开或新建一个可写方式打开或新建一个可写方式打开或新建一个可写方式打开或新建一个ASCIIASCIIASCIIASCII文件,文件,文件,文件,原有文件内容全部原有文件内容全部原有文件内容全部原有文件内容全部删删删删除除除除6 6 6 6“a+”“a+”“a+”“a+”同同同同“w+”“w+”“w+”“w+”,但是不,但是不,但是不,但是不删删删删除原有文件内容除原有文件内容除原有文件内容除原有文件内容7 7“rb”“rb”以只以只以只以只读读读读方式打开一个二方式打开一个二方式打开一个二方式打开一个二进进进进制

37、文件制文件制文件制文件8 8“wb”“wb”以只写方式打开或新建一个二以只写方式打开或新建一个二以只写方式打开或新建一个二以只写方式打开或新建一个二进进进进制文件,原制文件,原制文件,原制文件,原有文件内容全部有文件内容全部有文件内容全部有文件内容全部删删删删除除除除9 9“ab”“ab”同同同同“wb”“wb”,但是不,但是不,但是不,但是不删删删删除原有文件内容除原有文件内容除原有文件内容除原有文件内容1010“rb+”“rb+”以可以可以可以可读读读读可写方式打开一个二可写方式打开一个二可写方式打开一个二可写方式打开一个二进进进进制文件制文件制文件制文件1111“wb+”“wb+”以可以

38、可以可以可读读读读可写方式打开或新建一个二可写方式打开或新建一个二可写方式打开或新建一个二可写方式打开或新建一个二进进进进制文件,制文件,制文件,制文件,原有文件内容全部原有文件内容全部原有文件内容全部原有文件内容全部删删删删除除除除1212“ab+”“ab+”同同同同“wb+”“wb+”,但是不,但是不,但是不,但是不删删删删除原有文件内容除原有文件内容除原有文件内容除原有文件内容关闭文件关闭文件n n函数原型函数原型函数原型函数原型int fclose(FILE*int fclose(FILE*stream stream );n n调用方式调用方式调用方式调用方式fclose(fp)fcl

39、ose(fp);读字符读字符n n函数原型:函数原型:函数原型:函数原型:int fgetc(FILE*fp);int fgetc(FILE*fp);n n功能功能功能功能从从从从fpfp指向的文件中读取一个字符,同时将读写位置指向的文件中读取一个字符,同时将读写位置指向的文件中读取一个字符,同时将读写位置指向的文件中读取一个字符,同时将读写位置指针向前移动指针向前移动指针向前移动指针向前移动1 1个字节个字节个字节个字节写字符写字符n n函数原型函数原型函数原型函数原型int fputc(int ch,FILE *fp);int fputc(int ch,FILE *fp);n n功能功能功

40、能功能把字符把字符把字符把字符chch写入写入写入写入fpfp指向的文件,同时将读写位置指针指向的文件,同时将读写位置指针指向的文件,同时将读写位置指针指向的文件,同时将读写位置指针向前移动向前移动向前移动向前移动1 1个字节。个字节。个字节。个字节。读字符串读字符串n n函数原型:函数原型:函数原型:函数原型:char *fgets(char *str,int num,char *fgets(char *str,int num,FILE *fpointer);FILE *fpointer);n n功能:功能:功能:功能:从从从从fpointerfpointer指向的文件中读取一个字符串,并将

41、此串保存在指向的文件中读取一个字符串,并将此串保存在指向的文件中读取一个字符串,并将此串保存在指向的文件中读取一个字符串,并将此串保存在strstr指向的字符数组中。指向的字符数组中。指向的字符数组中。指向的字符数组中。字符串的自然结束符是字符串的自然结束符是字符串的自然结束符是字符串的自然结束符是“换行符换行符换行符换行符”和和和和“文件结束符文件结束符文件结束符文件结束符”。若读到若读到若读到若读到 num-1 num-1 个字符后还没遇到结束符,则也强制结束,这个字符后还没遇到结束符,则也强制结束,这个字符后还没遇到结束符,则也强制结束,这个字符后还没遇到结束符,则也强制结束,这时把时把

42、时把时把 num-1 num-1 个读入的字符送入数组个读入的字符送入数组个读入的字符送入数组个读入的字符送入数组 str str 中。中。中。中。读入结束后,在数组读入结束后,在数组读入结束后,在数组读入结束后,在数组 str str的字符串末尾加字符串终止字符的字符串末尾加字符串终止字符的字符串末尾加字符串终止字符的字符串末尾加字符串终止字符 NULLNULL;并将文件读写位置指针向前移动实际读取的字节个数并将文件读写位置指针向前移动实际读取的字节个数并将文件读写位置指针向前移动实际读取的字节个数并将文件读写位置指针向前移动实际读取的字节个数写字符串写字符串n n函数原型函数原型函数原型函

43、数原型int *fputs(char *str,FILE *fpointer);int *fputs(char *str,FILE *fpointer);n n功能:功能:功能:功能:把把把把strstr所指字符串(不包括字符串结束符所指字符串(不包括字符串结束符所指字符串(不包括字符串结束符所指字符串(不包括字符串结束符NULLNULL)写入)写入)写入)写入fpointerfpointer指向的文件指向的文件指向的文件指向的文件,同时将读写位置指针向前移动同时将读写位置指针向前移动同时将读写位置指针向前移动同时将读写位置指针向前移动numnum(字符串长度)个字节。(字符串长度)个字节。(

44、字符串长度)个字节。(字符串长度)个字节。读数据块读数据块n n函数原型:函数原型:函数原型:函数原型:int fread(void *buf,int size,int fread(void *buf,int size,int count,FILE *fp)int count,FILE *fp);n n功能:功能:功能:功能:从从从从fpfp所指的文件中读取所指的文件中读取所指的文件中读取所指的文件中读取countcount个字段,个字段,个字段,个字段,每个字段为每个字段为每个字段为每个字段为sizesize个字节,把它们送到个字节,把它们送到个字节,把它们送到个字节,把它们送到bufbuf

45、所指的缓冲数组中,所指的缓冲数组中,所指的缓冲数组中,所指的缓冲数组中,同时,将读写位置指针向前移动同时,将读写位置指针向前移动同时,将读写位置指针向前移动同时,将读写位置指针向前移动size*countsize*count个字节。个字节。个字节。个字节。一般来讲,数组一般来讲,数组一般来讲,数组一般来讲,数组bufbuf每个元素的尺寸为每个元素的尺寸为每个元素的尺寸为每个元素的尺寸为size size,每个字段正好对,每个字段正好对,每个字段正好对,每个字段正好对应数组应数组应数组应数组bufbuf的一个元素;即读入的一个元素;即读入的一个元素;即读入的一个元素;即读入countcount个

46、字段送入数组个字段送入数组个字段送入数组个字段送入数组bufbuf的的的的countcount个元素中。个元素中。个元素中。个元素中。写数据块写数据块n n函数原型:函数原型:函数原型:函数原型:int fwrite(void*buf,int size,int fwrite(void*buf,int size,int count,FILE*fp)int count,FILE*fp);n n功能:功能:功能:功能:从从从从bufbuf所指的数组中,把所指的数组中,把所指的数组中,把所指的数组中,把countcount个字段写到个字段写到个字段写到个字段写到fpfp所指的文件中,所指的文件中,所指

47、的文件中,所指的文件中,每个字段为每个字段为每个字段为每个字段为sizesize个字节,个字节,个字节,个字节,同时,将读写位置指针向前移动同时,将读写位置指针向前移动同时,将读写位置指针向前移动同时,将读写位置指针向前移动size*countsize*count个字节。个字节。个字节。个字节。一般来讲,数组一般来讲,数组一般来讲,数组一般来讲,数组bufbuf每个元素的尺寸为每个元素的尺寸为每个元素的尺寸为每个元素的尺寸为size size,每个字段正好对,每个字段正好对,每个字段正好对,每个字段正好对应数组应数组应数组应数组bufbuf的一个元素;即把数组的一个元素;即把数组的一个元素;即

48、把数组的一个元素;即把数组bufbuf的的的的countcount个元素写到文个元素写到文个元素写到文个元素写到文件中。件中。件中。件中。格式化读写格式化读写n n读读读读/写多个含格式的数据时选用写多个含格式的数据时选用写多个含格式的数据时选用写多个含格式的数据时选用 fscanf()fscanf()和和和和 fprintf()fprintf()函数。函数。函数。函数。n n函数函数函数函数fscanf()fscanf()和和和和 fprintf()fprintf()与函数与函数与函数与函数 scanf()scanf()和和和和 printf()printf()的功能相似,的功能相似,的功能

49、相似,的功能相似,n n区别在于函数区别在于函数区别在于函数区别在于函数 fscanf()fscanf()和和和和 fprintf()fprintf()操作对象是一般文操作对象是一般文操作对象是一般文操作对象是一般文件,而件,而件,而件,而 scanf()scanf()和和和和printf()printf()操作对象是标准输入输出文操作对象是标准输入输出文操作对象是标准输入输出文操作对象是标准输入输出文件。件。件。件。n n格式化读写是把数据按格式化读写是把数据按格式化读写是把数据按格式化读写是把数据按 fscanf()fscanf()和和和和 fprintf()fprintf()函数中格函数

50、中格函数中格函数中格式控制字符串中控制字符的要求进行转换,然后再进行式控制字符串中控制字符的要求进行转换,然后再进行式控制字符串中控制字符的要求进行转换,然后再进行式控制字符串中控制字符的要求进行转换,然后再进行读读读读/写。写。写。写。n n格式转换在第三章的格式转换在第三章的格式转换在第三章的格式转换在第三章的3.83.8节已经介绍过,这里不再赘述节已经介绍过,这里不再赘述节已经介绍过,这里不再赘述节已经介绍过,这里不再赘述格式化输入格式化输入n n函数原型:函数原型:函数原型:函数原型:int fscanf(FILE *fp,int fscanf(FILE *fp,char *forma

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

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

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

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁