【c++ primer 笔记】第八章 IO库

1.

不能拷贝或对IO对象赋值

进行IO操作的函数通常以引用方式传递和返回流。读写一个IO对象会改变其状态,因此传递和返回的引用不能个是const的。

条件状态

badbit 系统级错误,如不可恢复的读写错误,一旦badbit被置位,流就无法使用了

failbit 可恢复错误,出现这种错误流还可以继续使用

eofbit 流到达了文件结束,此时failbit同样会被置位

goodbit 流未处于错误

缓冲区刷新(数据真正写到输出设备或文件)

endl: 换行并刷新缓冲区

flush: 刷新缓冲区,但不输出任何额外字符

ends: 向缓冲区插入一个空字符,然后刷新缓冲区

如果程序崩溃,输出缓冲区不会被刷新

当一个输入流被关联到一个输出流时,任何试图从输入流读取数据的操作都会先刷新关联的输出流

用tie函数将一个输入流和输出流绑定

cin.tie(&cout);

2.

如果我们定义了一个空文件流对象,可以随后调用open来将它与文件关联起来

对一个已经打开的文件流调用open会失败,并会导致failbit被置位。为了将文件流关联到另外一个文件,必须首先关闭已经关联的文件

文件模式

默认情况下,当我们打开一个ofstream时,文件的内容会被丢弃。阻止一个ofstream清空给定文件内容的方法是同时指定app模式

ofstream app("file2", ofstream::app);
对于一个给定流,每当文件打开时,都可以改变其文件模式



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值