1. 输入输出标准库iostream、fstream、sstream;
2. 通常可以将一个派生类对象当做其基类对象使用;
3. 由于不能拷贝或给IO对象赋值,因此不能将形参或返回类型设置为流类型,进行IO操作的函数通常以引用方式传递和返回流;
4. 读写一个IO对象会改变其状态,因此传递和返回的引用不能是const的;
5. 一个流一旦发生错误,其上后续的IO操作都会失败。确定一个流对象的状态的最简单的方法是将它作一个条件来使用;
6. 将流作为条件使用,只能告诉我们流是否有效,而无法告诉我们具体发生了什么。
7. 每个输出流都管理一个缓冲区,用来保存程序读写的数据、当程序正常结束、缓冲区满、使用操作符endl、在每个输出操作后用unitbuf设置流的内部状态或将一个输出流关联到另一个流,并对关联到的那个刘进行读写操作时会导致缓冲区的刷新;
8. 操作符endl、flush、ends均能刷新缓冲区。其中flush刷新缓冲区但不输出任何额外字符,ends向缓冲区插入一个空字符,然后刷新缓冲区;
9. 输出流设置unitbuf位可使接下来的输出操作后均立即刷新缓冲区,再使用nounitbuf可回到正常的缓冲模式;
10. 当一个输入流被关联到一个输出流时,任何试图从输入流读取数据的操作都会先刷新关联的输出流;
11. 当一个fsteam对象离开其作用域时,与之关联的文件会自动关闭;
12. 以out模式打开文件会丢弃已有数据,隐式trunc模式,保留被ofstream打开的文件中已有数据的唯一方法是显示指定app或in模式;