- 2
- 0
- 约5.33万字
- 约 37页
- 2017-06-13 发布于湖北
- 举报
第12章 流类体系与文件操作 ·317·
第12章 流类体系与文件操作
通过本章学习,应了解 I/O流、流类、流类库与流类体系的概念,掌握流类的输入/输
出控制格式。了解 C++有关文件的概念及文件的使用方法,理解文件流类体系结构,掌握文
件操作的成员函数,学会文本文件与二进制文件的打开、读/写、关闭等操作的编程方法。
12.1 流类体系
在前面的章节中,所有的输入与输出操作都是通过 cin 与 cout 来完成的,要注意 cin 与
cout 并不是 C++ 的语句,而是用 C++提供的流类库定义的对象。因此,要真正的理解 C++
的输入/输出操作,必须首先理解 C++ 的流、流类、流类库的概念,即首先应理解 C++ 的流
类体系。为此,本章首先介绍 C++流类体系,然后再介绍 C++ 中的文件操作。
12.1.1 流(Stream)
1.流类
在面向对象的 C++程序设计语言中,用类定义对象时,系统将为对象的数据成员分配
存储单元。通常,在程序执行过程中,使用输入设备(如键盘)将数据输入到为对象数据
成员分配的存储单元中,经过运算处理后,对象数据成员存储单元中的数据要通过输出设
备输出给用户,或保存在磁盘文件中。因此,数据不断的从设备流向对象,又不断的从对
象流向设备。这种数据的流动就是对象与外设之间的输入/输出操作,如图 12.1 所示。我们
已经知道,数据输入流动可以通过cin 来完成(如:cinx),数据输出流动可以通过 cout 来
完成(如:coutx) 。而cin、cout 是用流类定义的流对象,因此,数据流动是通过执行输入
/输出操作的类体系来完成的,这个用于完成输入/输出操作的类体系称为流类,提供这个流
类实现的系统称为流类库。C++提供了强大的流类库。本节主要介绍流类体系与流类库提供
的格式化输入/输出。 对象 c 的数据成员
X
输入设备 cinx coutx 输出设备
Y
(如键盘) (如显示器)
Z
2.流 图 12.1 对象与外设之间的数据流动
流是用流类定义的对象,如 cin、cout 等。因为流类是用于完成输入输出操作的类,所
以用流类定义的对象即流,将向程序设计者提供输入输出接口,该接口可使得程序的设计
尽可能与所访问的具体设备无关。如用户使用写操作成员函数可以实现对一个磁盘文件的
写操作,也可以实现将输出信息送显示器显示,还可以实现将输出信息送打印机打印,从
而大大减轻程序员的工作量。
3.流的分类
C++提供了两种类型的流:文本流(Text Stream )和二进制流(Binary Stream )。文本
第12章 流类体系与文件操作 ·318·
流是一串 ASCII 字符,如数字 12 在文本流中的表示方法为 1 与 2 的ASCII 码 31H 与 32H 。
而二进制流则是由一串二进制数组成,如数字 12 在二进制流中的表示方式为。源
程序文件和文本文件在传送时均采用文本流。通常,文本流在不同的设备之间传送时,可
能要作一些变换,如将换行字符’\n’变换成回车换行两个字符“\r\n” ,或进行相反的变换等。
二进制流是将数据以二进制形式存放的,这种流与设备上的输入输出一一对应,在数据传
送时不需作任何变换。
4.缓冲流与非缓冲流
系统在主存中开辟的用于临时存放输入/输出流信息的内存区称缓冲区,如图 12.2 所示。
输入/输出流也相应的分成缓冲流与非缓冲流。
磁盘文件区
您可能关注的文档
最近下载
- DHG9070A型电热鼓风干燥箱说明书.pdf VIP
- 【老照片】1966年-1967年的彩色中国.docx VIP
- 蒙特利尔认知评估量表.doc VIP
- 解放前后大不同.连环画.1950年.pdf VIP
- 2026年济南工程职业技术学院单招《数学》题库含完整答案详解【考点梳理】.docx VIP
- 1949--1989年国产老电影目录.doc VIP
- 1949--166年国产老电影目录.doc VIP
- 简易精神状态检查量表(-MMSE).doc VIP
- LNG-CNG-LPG(液化石油气、液化天然气、压缩天然气)汽车、罐车事故处置.pptx VIP
- 简易精神状态检查量表(MMSE).docx VIP
原创力文档

文档评论(0)