C++ Primer Plus(十七)——输入、输出和文件
1. cerr和clog对象与标准错误流对应,但cerr不被缓冲。 2. streambuf类为缓冲区提供了内存,并提供了用于填充缓冲区、访问缓冲区内容、刷新缓冲区和管理缓冲区内存的类方法。ios_base类表示流的一般特征(是否可读取?二进制流?等,ios类基于ios_base,包含一个指向streambuf的指针成员 3. ostream提供了put和write方法,前者用于显示字符,后者用于显示字符串。write的第一个参数提供了要显示的字符串地址,第二个指出要显示多少个字符。需要注意的是write方法并不会在遇到空字符时停止打印字符,而是打印指定数目的字符,即使超出了字符串的边界。 4. 多数C++实现都会在输入即将发生时刷新缓冲区。如果实现并不能在希望时刷新输出,那么可以使用两个控制符中断一个强行刷新:控制符flush刷新缓冲区;控制符endl不仅刷新缓冲区还插入一个换行符。事实上,控制符也是函数,可以直接调用刷新,如flush(cout)。 5. cout 进行格式化,浮点数的老式实现和新实现有所不同,新实现当指数大于等于6或小于等于5时,用科学计数法表示,默认的行为对应于带%g说明符的标准C库函数fprintf。 6. cout如何设置显示整数时的计数系统:dec、hex和oct控制符,如hex(cout) 7. cout调整字符宽度: int width(); //