C++ primer 笔记8. I/O库

IO类

头文件:<iostream>  <fstream> <sstream>

支持宽字符wchar_t的类型:

wistream, wostream, wiostream

wifstream, wofstream, wfstream

wistringstream, wostringstream, wstringstream

wcin, wcout, wcerr

IO对象不支持拷贝和赋值

流的状态:

C++ primer 笔记8. I/O库

如果badbit, failbit, eofbit任一个被置位,则检测流状态条件会失败

管理输出缓冲

每个输出流都管理一个缓冲区,保存程序读写的数据

缓冲刷新的原因:

程序结束

缓冲区满

endl等操纵符

C++ primer 笔记8. I/O库

操纵符unitbuf设置流状态立即刷新(默认cerr设置unitbuf)

C++ primer 笔记8. I/O库

当读写被关联的流,关联到的流的缓冲区会被刷新(默认cin和cerr关联到cout,读写cin和cerr会导致count被刷新)

关联输入和输出流:

C++ primer 笔记8. I/O库

每个流同时最多关联到一个流,多个流可以同时关联到同一个ostream

 

 

文件输入输出

操作:

C++ primer 笔记8. I/O库

fstream、sstream继承自iostream

文件打开操作:

C++ primer 笔记8. I/O库

当fstream对象离开作用域,会被销毁,自动调用close

文件关联模式:

C++ primer 笔记8. I/O库

 

 

string流

istringstream从string读取数据;ostringstream向string写入数据;stringstream可读可写

stringstream操作:

C++ primer 笔记8. I/O库

stringstream可以将string按照空格进行切分:

C++ primer 笔记8. I/O库

使用ostringstream:

C++ primer 笔记8. I/O库