C++初学者指南 第十一篇(2)
来源:互联网 发布:针对a卡优化的游戏 编辑:程序博客网 时间:2024/06/01 10:53
必备技能11.2:C++中的流类
正如我们在第一篇中学习到的那样,C++中对输入输出系统的支持都是在<iostream>中提供的。在该头文件中定义了一些相当复杂的类层次的集合,它们用来支持输入和输出的操作。输入输出类是从一个系统模版类开始的。我们将在地12篇中学习到,模版定义了类的通用形式,而不用具体指明这些类操作的数据的类型。标准C++从这些模版中定义了两个具体的和输入输出库相关的类:其中一个是针对8位字符集的,一个是针对宽位字符集的。这些类和其它的类一样,我们不需要熟悉模版相关的知识也能很好地使用这些输入输出的功能。
C++中的输入输出系统是基于两个相关但是又有区别的模版类的。一个是从低级的输出输出类继承而来的,叫做basic_streambuf。这个类提供基础的低级的输入和输出操作,并提供了对整个C++输入输出系统的支持。我们没有必要直接使用basic_streambuf这个类,除非我们要进行高级的输入输出编程。类层次中我们经常用到的是从basic_ios派生的类。这是一个高级的输入输出类。它提供了格式化,错误检查以及输入输出流的状态信息。basic_ios是多个派生类的基类,包括basic_istream、asic_iostream和basic_iostream。它们可以分别北用来创建用于输入、输出、输入和输出的流。
正如我们解释的那样,输入输出库中创建了两个版本的输出输出类层次:一个是针对8位的字符集的;一个是针对宽位字符集的。本书中我们只讨论针对8位字符集的类,这是因为到目前为止,它是最常用到的。下面是模版类名称和基于字符的类名称的对应表:
模版类名称
对应的基于字符的类名称
basic_streambuf
streambuf
basic_ios
ios
basic_istream
istream
basic_ostream
ostream
basic_iostream
iostream
basic_fstream
fstream
basic_ifstream
ifstream
basic_ofstream
ofstream
我们将在本书的后面使用到上面的基于字符的类名。这些类也是我们在程序中要用到的类,也是在老版本的输入输出库中用到的名称。这也是为什么老版本的和新版本的输入输出库在源码级上是兼容的。
最后一点:类ios包含了许多成员函数和变量用来控制或者件事流的基本操作。我们将经常引用这些成员函数或者变量。牢记,只要我们在程序中包含了<iostream>,我们就可以访问这个重要的类了。
练习:
1. 什么是流?什么是文件?
2. 和标准输出相关联的类是哪个类?
3. C++中的输入输出是由一系列成熟的类层次来支持的,对吗?
- C++初学者指南 第十一篇(2)
- C++初学者指南 第十一篇(1)
- C++初学者指南 第十一篇(3)
- c++初学者指南 第十一篇(4)
- C++初学者指南 第十一篇(5)
- C++初学者指南 第十一篇(6)
- C++初学者指南 第十一篇(7)
- C++初学者指南 第十一篇(8)
- C++初学者指南 第十一篇(9)
- C++初学者指南 第十一篇(10)
- C++初学者指南 第十一篇(11)
- C++初学者指南 第十一篇(12)
- C++初学者指南 第十一篇(13)
- C++初学者指南 第十一篇(14)
- C++初学者指南 第十篇(2)
- C++ 初学者指南 第一篇(2)
- Objective-C初学者指南(第2版)
- C++:初学者的指南
- 如何实现手机共享电脑主机的网络
- Oracle常用傻瓜问题1000问
- 解决eclipse各种插件依赖性问题
- 安装
- 计算机开机启动系统都经过了哪些步骤?计算机是如何启动系统的?
- C++初学者指南 第十一篇(2)
- 内部管理类软件基础架构思想(思路图解 + 配套免费视频)
- 这个网站真货了!
- 公路常用计算EXCEL插件-[测量计算]
- 记一次登录程序的改进过程(改进记住密码功能、提高用户交互)
- 谦逊的最高境界
- 程序员职业发展技术要深度还是广度
- 做人十六别
- PADS 使用记录