1、IO标准库管理一系列条件状态成员,用来标记给定的IO对象是否处于可用状态,或者碰到了哪种特定的错误。所有流对象都包含一个条件状态成员,该成员由setstate和clear操作管理。
nounitbuf操纵符将流恢复为使用正常的,由系统管理的缓冲区刷新方式。
2、badbit标志着系统级的故障,如无法恢复的读写错误。
如果出现的是可恢复的错误,如在希望获得数值型数据时输入了字符,此时则设置failbit标志。
eofbit是在遇到文件结束符时设置的,此时同时还设置了failbit。
流的状态由bad、fail、eof和good操作揭示。如果bad、fail或者eof中的任意一个为true,则检查流本身将显示该流处于错误状态。如果这三个条件没有一个为true,则good操作将返回true。
clear操作将条件重设为有效状态。
rdstate成员函数返回一个iostate类型的值,该值对应于流当前的整个条件状态。
3、输出缓冲区的管理
1)endl操作符,用于输出一个换行符并刷新缓冲区。
2)flush操作符,用于刷新流,但不在输出中添加任何字符。
3)ends操作符,在缓冲区中插入空字符null,然后刷新它。
4)如果需要刷新所有输出,最好使用unitbuf操纵符,这个操纵符在每次执行完写操作后都刷新流。
5)将输入和输出绑在一起:当输入流与输出流绑在一起时,任何读输入流的尝试都将首先刷新其输出流关联的缓冲区。
tie函数可用istream或ostream对象调用,使用一个指向ostream对象的指针形参,调用tie函数时,将实参流绑在调用该函数的对象上。