1、格式化标识
类型定义为ios_base::fmtflags
_Ios_Fmtflags检举值有
符号 | 值 |
_S_boolalpha | 1L << 0 |
_S_dec | 1L << 1 |
_S_fixed | 1L << 2 |
_S_hex | 1L << 3 |
_S_internal | 1L << 4 |
_S_left | 1L << 5 |
_S_oct | 1L << 6 |
_S_right | 1L << 7 |
_S_scientific | 1L << 8 |
_S_showbase | 1L << 9 |
_S_showpoint | 1L << 10 |
_S_showpos | 1L << 11 |
_S_skipws | 1L << 12 |
_S_unitbuf | 1L << 13 |
_S_uppercase | 1L << 14 |
_S_adjustfield | _S_left | _S_right | _S_internal |
_S_basefield | _S_dec | _S_oct | _S_hex |
_S_floatfield | _S_scientific | _S_fixed |
_S_ios_fmtflags_end | 1L << 16 |
_S_ios_fmtflags_max | __INT_MAX__ |
_S_ios_fmtflags_min | ~__INT_MAX__ |
ios_base的类结构图为
以及basic_ios中的copyfmt
2、布尔值格式化
fmtflags使用boolalpha,控制使用boolalpha和noboolalpha
3、宽度、填充字符和对齐
宽度设置和获取分别使用ios_base中的width(val), withd(),也可以使用iomanip中的setw(w)
填充字符设置和获取分别使用basic_ios中的fill(c),fill(),也可以使用iomanip中的setfill(c)
对齐使用ios_base中的left,right,internal(符号左对齐,值右对齐)
4、正符号及大写
使用ios_base中的showpos,uppercase
5、进制
使用ios_base中的oct,dec,hex分别表示八进制、十进制和十六进制
showbase显示进制的前缀
6、浮点显示
使用ios_base中的precision和presion(val)来获取和设置精度,也可以使用iomanip中的setprecision(v)来设置精度
用showpoint显示小数点
7、其他
skipws 读取值是跳过前缀空格
unitbuf写操作后刷新输出缓存