使用流状态可以方便格式化输出,使用之前要包含 <iomanip> 头文件,即 #include <iomanip>
1.常用的流状态:
showpos 在正数(包括0)前面显示 + 号
showbase 十六进制整数前加 0x,八进制整数前加 0
uppercase 十六进制格式字母用大写字母表示(默认为小写字母)
showpoint 浮点输出即使小数点后都为 0 也加小数点
boolalpha 逻辑值 1 和 0 用 true 和 false 表示
left 左对齐(填充字符填在右边)
right 右对齐(填充字符填在左边)
dec 十进制显示整数
hex 十六进制显示整数
oct 八进制显示整数
fixed 定点数格式输出
scientific 科学计数法格式输出
取消流状态的操作方式为: noshowpos, noshowbase, nouppercase, noshowpoint, noboolalpha
left与right是对立的,设置了此就取消了彼.dec、oct、hex三者也是相互独立的,设置了此就取消了彼.而 fixed 与 scientific 和一般显示方式三者也是独立的,但取消方式比较别扭,为 cout 捆绑函数调用的方式: cout.unsetf(ios::scientific);
2.有参数的三个常用的流状态
width(int) 设置显示宽度
fill(char) 设置填充字符
precision(int) 设置有效位数(普通显示方式)或精度(定点或科学计数法)
这些流状态是以 cout 捆绑调用的形式设置的,不能与 << 连用.
特别注意 width(n) 为一次性操作,即第二次显示时将不再有效.
3.与 << 连用的设置方式
还有另一种与 << 连用的设置方式
setw(int) 设置显示宽度
setfill(char) 设置填充字符
setprecision(int) 设置有效位数(普通显示方式)或精度(定点或科学计数法)