您的位置:首页 > 编程语言 > C语言/C++

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

2016-08-26 19:03 204 查看
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);
对于一个给定流,每当文件打开时,都可以改变其文件模式
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: