第八章: IO库

一、IO类

1、iostream定义了读写流的基本类型,fstream定义了读写命名文件的类型,sstream定义了读写内存string对象的类型

2、不能拷贝IO对象,因此不能将形参或返回类型设置为流类型:通常以引用方式传递和方回流

3、读写一个IO对象会改变其状态,因此传递和返回的引用不能是const的

4、通常在使用一个流之前应该检查它是否处于良好状态

5、管理输出缓冲

    • 默认情况下,cin和cerr都关联到cout,因此,读cin或写cerr都会导致cout的缓冲区被刷新
cout << "hi!" << end;    //输出hi和一个换行符,然后刷新缓冲区
cout << "hi!" << flush;    //输出hi,刷新缓冲区,不附加任何额外字符
cout << "hi!" << ends;    //输出hi和一个空字符,刷新缓冲区

二、文件输入输出

1、ifstream从一个给定文件读取数据,ofstream向一个给定文件写入数据, fstream可以读写给定文件

2、打开文件:fstream fstrm(s, mode);按mode方式打开文件

in    //以读方式打开
out    //以写方式打开
app    //每次写操作前定位到文件尾
ate    //打开文件后立即定位到文件尾
trunc    //截断文件
binary    //二进制方式进行IO
  • 与ifstream关联的文件默认以in模式打开;与ofstream关联的文件默认以out模式打开;与fstream关联的文件默认以in和out模式打开
  • 默认情况下,即使没有指定trunc,以out模式打开的文件也会被截断
  • 要最佳模式必须自己指定app模式才可以追加写(ofstream::out | ofstream::app)

三、string流:可以向string写入数据,从string读取数据

  • istringstream:从string读取数据
  • ostringstream:向string写入数据
  • 我们将一个istringstream与刚刚读取的文本行进行绑定,就可以在此istringsteam上使用输入运算符>>来读取当前记录的每个元素
posted @ 2015-09-25 16:48  dylqt  阅读(182)  评论(0编辑  收藏  举报