C++初学者指南 第十一篇(2)

转载请标明出处:http://blog.csdn.net/zhangxingping

必备技能11.2C++中的流类

正如我们在第一篇中学习到的那样,C++中对输入输出系统的支持都是在<iostream>中提供的。在该头文件中定义了一些相当复杂的类层次的集合,它们用来支持输入和输出的操作。输入输出类是从一个系统模版类开始的。我们将在地12篇中学习到,模版定义了类的通用形式,而不用具体指明这些类操作的数据的类型。标准C++从这些模版中定义了两个具体的和输入输出库相关的类:其中一个是针对8位字符集的,一个是针对宽位字符集的。这些类和其它的类一样,我们不需要熟悉模版相关的知识也能很好地使用这些输入输出的功能。

C++中的输入输出系统是基于两个相关但是又有区别的模版类的。一个是从低级的输出输出类继承而来的,叫做basic_streambuf。这个类提供基础的低级的输入和输出操作,并提供了对整个C++输入输出系统的支持。我们没有必要直接使用basic_streambuf这个类,除非我们要进行高级的输入输出编程。类层次中我们经常用到的是从basic_ios派生的类。这是一个高级的输入输出类。它提供了格式化,错误检查以及输入输出流的状态信息。basic_ios是多个派生类的基类,包括basic_istreamasic_iostreambasic_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++中的输入输出是由一系列成熟的类层次来支持的,对吗?

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值