我的《C++ primer》笔记 第八章:IO库

第八章 IO库

这张呢怎么说,主要是理解流,其他流操作在具体环境中不会了再查阅文档都没有问题。(可能是我太菜)

8.1 IO类

IO类型间的关系

标准库使我们能忽略这些不同类型的流之间的差异,这是通过继承机制实现的。

ifstream 和 istringstream 都继承自istream , ofstream 和 ostringstream 都继承自ostream所以我们可以像使用istream的方式来使用ifstream和istringstream

8.1.1 IO对象无拷贝或赋值
ofstream out1, out2;
out1 = out2; //错误,不能对流对象赋值
ofstream print(ofstream); //错误,不能初始化ofstream参数
out2 = print(out2); //错误不能拷贝流对象
P279 表: IO库的条件状态
8.1.3 管理输出缓冲

每一个输出流都管理一个缓冲出,用来保存程序的读写数据。这样做有好处,允许操作系统将多个输出操作组合为单一的设备写操作,可以带来很大的性能提升

导致缓冲刷新的原因有很多:

  • 程序正常结束,作为main函数的return 操作的一部分,缓冲刷新被执行
  • 缓冲区满,需要刷新缓冲,而后新的数据才能继续写入缓冲区
  • 通过操作符endl来显示刷新缓冲区
  • 每个输出操作之后,我们可以用操纵符unitbuf设置流内部状态,来清空缓冲区在默认情况下,对cerr是设置unitbuf的,因此写到cerr的内容都是立即刷新的
  • 一个输出流被关联到另一个流,当读写到被关联的流时,缓冲区会自动刷新。
刷新输出缓冲区

除了endl之外,IO库里面还有两个类似的操纵符

cout << 1 << endl
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蒜蓉蒸大虾

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值