输入输出概述
输入输出: 程序与外部设备交换信息。
可分为基于控制台的I/O,基于文件的I/O,基于字符串的I/O。
数据流: C++ 把输入输出看作一个数据流。
输入流:外围设备流向内存的数据
输出流:内存流向外围设备的数据
C++ 中相关的头文件如下表所示。
输入输出缓冲
I/O对象: C++ 程序不能直接与输入输出设备交换信息,而需要通过一个对象实现。对象是输入输出设备在程序中的代理。
每个 I/O 对象管理一个缓冲区,用于储存读写得数据。
格式: >> 从输入缓冲区取数据存入变量;<< 将数据放入输出缓冲区。
缓冲区刷新:
程序正常结束:清空所有输出缓冲区,真正输出内容。
缓冲区满:在写入下一个值之前,会刷新缓冲区。
强制刷新:endl 显式地刷新缓冲区, unitbuf 操作符设置流的内部状态清空缓冲区。
关联输入输出流:在读输入流时,将刷新其关联的输出缓冲区。
整数和实数的输入输出
设置整数基数
hex 十六进制 oct 八进制 dec 十进制
setbase(进制数),只允许 8、10、16 进制。
头文件 iomanip
流的基数值只有被显式更改才会发生变化,否则会一直沿用原有基数。
设置浮点数精度
精度: 指实型数的有效位数。
设置方法:
流操作符:setprecision(位数)
流的成员函数:precision(位数)
一旦设置了精度,将影响所有输出的浮点数的精度,直到下一个设置精度的操作为止。
设置域宽
精度: 指实型数的有效位数。
设置方法:
流操作符:setprecision(位数)
流的成员函数:precision(位数)
一旦设置了精度,将影响所有输出的浮点数的精度,直到下一个设置精度的操作为止。