第12章文件处理 12.1文件简分 12.2文件和 12.3件的访应 12,4应文件的访 人民邮电出版社 POSTS tEl OM PRE 动此映
第12章 文 件 处 理 12.1 文 件 简 介 12.2 文 件 和 流 12.3 顺序文件的访问 12.4 随机文件的访问
121文件简介 C++的文件一般指存储在外部介质上的数 据集合 这里的外部存储介质一般特指磁盘,磁盘 上的文件称为磁盘文件。对磁盘文件的输 入/输出简称为文件JO 每个文件都对应一个文件名, 人民邮电出版社 POSTS tEl OM PRE 动此映
12.1 文 件 简 介 C++的文件一般指存储在外部介质上的数 据集合。 这里的外部存储介质一般特指磁盘,磁盘 上的文件称为磁盘文件。对磁盘文件的输 入/输出简称为文件I/O。 每个文件都对应一个文件名
文件名由文件主名和扩展名两部分组成, 它们之间用圆点分开。文件主名是由用户 命名的一个有效的C+标识符,为了便于 记忆和使用,一般使文件主名的含义与所 存的文件内容相一致。 文件扩展名是由用户命名的1-3个字符组成, 是有效的C+标识符,通常用它来区分文 件的类型。 人民邮电出版社 POSTS tEl OM PRE 动此映
文件名由文件主名和扩展名两部分组成, 它们之间用圆点分开。文件主名是由用户 命名的一个有效的C++标识符,为了便于 记忆和使用,一般使文件主名的含义与所 存的文件内容相一致。 文件扩展名是由用户命名的1~3个字符组成, 是有效的C++标识符,通常用它来区分文 件的类型
在C+程序中保存数据的文件按存储格式 分为两种类型,一种为ASCI码文件或文 本文件它的每一个字节存放一个ASCI代 码,代表一个字符。另一种为内部格式文 件或二进制文件是把内存中的数据按其在 内存中的存储形式原样输出到磁盘上存放。 人民邮电出版社 POSTS tEl OM PRE 动此映
在C++程序中保存数据的文件按存储格式 分为两种类型,一种为ASCII码文件或文 本文件,它的每一个字节存放一个ASCII代 码,代表一个字符。另一种为内部格式文 件或二进制文件,是把内存中的数据按其在 内存中的存储形式原样输出到磁盘上存放
122文件和流 C+语言把文件看作是一个字符(字节) 的序列,即由一个一个字符(字节)的数 据顺序组成。一个文件是一个字节流或二 进制流。它把数据看作是一连串的字符 (字节),而不考虑记录的界限 人民邮电出版社 POSTS tEl OM PRE 动此映
12.2 文 件 和 流 C++语言把文件看作是一个字符(字节) 的序列,即由一个一个字符(字节)的数 据顺序组成。一个文件是一个字节流或二 进制流。它把数据看作是一连串的字符 (字节),而不考虑记录的界限
这种以字节流或二进制流组成的文件被称 为流式文件。以字符为单位进行操作增加 了处理的灵活性。 为了进行文件IO操作,C艹定义了文件流。 文件流是控制台流的扩展,是从控制台流 类派生来的,它继承了控制台流类的所有 特点。文件流类根据自己的需求,增加了 控制台流类所没有的特性。 人民邮电出版社 POSTS tEl OM PRE 动此映
这种以字节流或二进制流组成的文件被称 为流式文件。以字符为单位进行操作增加 了处理的灵活性。 为了进行文件I/O操作,C++定义了文件流。 文件流是控制台流的扩展,是从控制台流 类派生来的,它继承了控制台流类的所有 特点。文件流类根据自己的需求,增加了 控制台流类所没有的特性
文件流可分为3类:输入文件流 ifstream、 输出文件流 ofstream以及输入/输出文件流 istream。 和其他高级语言一样,对文件的读写之前 应打开该文件,在完成操作之后应及时关 闭该文件。 调用相应流中的open成员函数或构造函数, 按照一定的打开方式打开一个文件。 人民邮电出版社 POSTS tEl OM PRE 动此映
文件流可分为3类:输入文件流ifstream、 输出文件流ofstream以及输入/输出文件流 fstream。 和其他高级语言一样,对文件的读写之前 应打开该文件,在完成操作之后应及时关 闭该文件。 调用相应流中的open成员函数或构造函数, 按照一定的打开方式打开一个文件
0pen的函数原型为: void open( const char* szName, int nMode, int pRot=filebuf:: openprot ) 其中, sESame是文件名,它可包含驱动器 符和路径说明; mOde说明文件打开的模式, 表13.1给出了 mOde的取值范围 关闭任何一个流对象所对应的文件,就是用 这个流对象调用 close()成员函数即可 人民邮电出版社 POSTS tEl OM PRE 动此映
open的函数原型为: void open( const char* szName, int nMode, int nProt = filebuf::openprot ); 其中,szName是文件名,它可包含驱动器 符和路径说明;nMode说明文件打开的模式, 表13.1给出了nMode的取值范围。 关闭任何一个流对象所对应的文件,就是用 这个流对象调用close()成员函数即可
表13-1 流模式标志 选项 loSapp 添加模式,所有新数据都写入文件尾部。 los:ate 打开文件时文件指针定位到文件尾,如果程序移动了文件 指针,就把数据写入到当前位置 loSIn 打开文件进行读操作,文件不存在时出错。 打开文件进行写操作,如文件已存在则更新该文件。 lOs:: trunc 如果文件已存在则清空原文件 ios: nocreate打开一个已经存在的文件,如果文件不存在则打开失败。 ios: homeplace打开一个不存在的文件,如果文件存在则打开失败。 ios:: binary 二进制文件(非文本文件) 人民邮电出版社 POSTS tEl OM PRE 点破此处放
表 13-1 流模式标志 选 项 ios::app 添加模式,所有新数据都写入文件尾部。 ios::ate 打开文件时文件指针定位到文件尾,如果程序移动了文件 指针,就把数据写入到当前位置。 ios::in 打开文件进行读操作,文件不存在时出错。 ios::out 打开文件进行写操作,如文件已存在则更新该文件。 ios::trunc 如果文件已存在则清空原文件 ios::nocreate 打开一个已经存在的文件,如果文件不存在则打开失败。 ios::noreplace 打开一个不存在的文件,如果文件存在则打开失败。 ios::binary 二进制文件(非文本文件)
123顺序文件的访间 对文件的操作总是从文件指针位置开始顺 序向后移动,所以称之为顺序文件。 12.3.1建立顺序访问文件 1.建立文本文件 人民邮电出版社 POSTS tEl OM PRE 动此映
12.3 顺序文件的访问 对文件的操作总是从文件指针位置开始顺 序向后移动,所以称之为顺序文件。 12.3.1 建立顺序访问文件 1. 建立文本文件