8.1 IO类
- iostream 用于读写流的基本类型,fstream用于读写命名文件,sstream 定义了读写内存string 对象的类型
- 8.1.2
- 缓冲刷新原因:程序正常结束/缓冲区满/endl/一个输出流关联到另一个流
- 刷新输出缓冲区可以有endl(多一个换行)/flush(没有额外操作)/ends(多一个空字符)三种
- unitbuf可以让任何输出都立即刷新无缓冲,nounitbuf将其回到正常的缓冲方式
8.2 文件输入输出
- badbit :流已崩溃
eofbit :流达到了文件结束位置
failbit :IO操作失败 - 若定义了一个空文件流,可以随后调用open来将它与文件关联起来。并进行open成功得到检测通常是一个好习惯;
- 当一个fstream对象被销毁时,close会自动被调用。
- 文件模式用来指出如何使用文件,ofstream对应out模式,ifstream对应in模式,trunc代表截断文件,
- 以out模式打开文件时会丢弃已有数据,若想保存数据,指定app模式(每次写操作前均定位到文件末尾);
8.3 string 流
- 当我们的某些工作是对整行文本进行处理,而其他一些工作是处理行内的单个单词时,通常可以使用istringstream;
- 当我们逐步构造输出,希望最后可以一起打印时,ostringstream是很有用的;
- strm.str() 返回strm所保存的string的拷贝,strm.str(s)将string s拷贝到strm中,返回void;