读书笔记-C++PrimerPlus-CPP流的总结

15 篇文章 0 订阅
2 篇文章 0 订阅

首先推荐一个C++参考文档组织的比较好的网站http://www.cplusplus.com/,最近见得好像比较到自己组织的比较好。本文也是根据这个网上的资料总结得到的。

流的简介


iostream是C++中提供流的输入输出函数的面向对象库。

流是表示设备被输入输出操作的抽象。一个流基本上可以看做是无限长的字符串的来源或者目的地的表示。

通常来说流都与物理字符串设备的源或者字符串相关联,比如说硬盘文件,键盘,或者控制台。所以当从抽象得到或者写入一个字符到抽象也叫做从物理设备输入或者输出。例如文件流是C++对象用来与文件操作和交互,一旦流打开了一个文件,任何流的输入或输出操作都是物理的映射到该文件中。

为了操作流,C++提供了标准iostream库,包括如下内容:
基本类模板:
基本iostreamu是一个类模板的继承类。类模板以类型独立的方式提供了绝大多数函数实现。这是类模板的集合,每个都有两个模板参数,char类型(char T)参数,这个决定了要被操纵的元素类型。traits参数,这个提供了附加的特殊字符用于特定类型的元素。
类继承中的类模板,和他们的字符类型实例有相同的名字但是多了个前缀basic_。比如说istream是basic_istream类型的实例。fstream是basic——fstream类型的实例。等等。唯一的一个例外是ios_base,这个类型独立的。他不是基于模板的而是一个普通的类。

类模板实例:
库为所有的iostream类模板继承合并了两种标准实例实现。一个是窄字符也就是char类型,另一个是wchar_t类型。
窄char类型可能是更为人所熟知的部分。例如ios,istream和ofstream都是窄字符类型的。
宽char类型也命名也与窄char类型一样,只是在前面多了一个w。比如说wios,wistream,wofstream。

标准对象:
作为 iostream库的一部分,头文件定义了特定的对象用于执行标准的输入输出操作。
他们被分成两个部分,窄字符的,常用的如cin,cout,cerr和clog及对应的宽字符的,被声明为wcin,wcout,wcerr和wclog

类型:
iostream类型基本上只使用基本类型作为成员原型。他们通常使用定义好的类型,取决于实例的traits。对应默认的char和wchar_t实例。类型streampos,streamoff和streamsize被用于表示位置,偏置和大小。

操作子(不知道怎么翻译了):
操作子是全局函数,被设计用于与<<和>>结合使用的执行在iostream流对象上的。他们通常修改属性或者格式设定。常用的如endl,hex和scientific。

这里写图片描述

组织结构:

<ios><istream><ostream><iosfwd>
通常不会直接使用在绝大多数的C++程序中,他们通常被描述在继承的基础类型中。并被自动的包含在库的继承类型的其他头文件中
iostream
声明了和基本输入输出通信的对象,包括cin和cout
fstream
定义了文件流对象(basic_ifstream和ofstream)也声明了内部缓存对象如basic_filebuff。这些类被用于使用流操作文件
sstream
定义在这个文件中的类用于操作字符串对象,如果他们是流的话。
iomanip
声明了标准操作参数用于提取和插入算子来修改内部标志位和格式选项。

iostream库的元素
类:
这里写图片描述

对象:
这里写图片描述

类型:
这里写图片描述

操作子:
这里写图片描述
这里写图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值