iomanip
iomanip在c++程序里面经常见到下面的头文件#include <iomanip>
,io代表输入输出,manip是manipulator(操纵器)的缩写(在c++上只能通过输入缩写才有效。)
作用
主要是对cin,cout之类的一些操纵运算子,比如setfill, setw, setbase, setprecision 等等。它是I/O流控制头文件,就像C里面的格式化输出一样。
常见的控制函数
1. 进制控制
指令 | 解释 |
---|
dec | 置基数为10 相当于”%d” |
hex | 置基数为16 相当于”%X” |
oct | 置基数为8 相当于”%o” |
2. 输出域宽控制
指令 | 解释 |
---|
setfill( ‘c’ ) | 设填充字符为c |
setw( n ) | 设域宽为n个字符 |
setprecision( n ) | 设显示有效数字为n位 |
3. 将数字转换进制
指令 | 解释 |
---|
setbase(int n) | 将数字转换为 n 进制 |
4. setprecision(long f)方法的用法 :
setprecision() | 解释 |
---|
setprecision(n) | 控制输出流显示浮点数的数字个数,C++默认的流输出数值有效位是6 |
与setiosflags(ios::fixed)合用 | 控制小数点右边的数字个数 |
与setiosflags(ios::scientific)合用 | 控制指数表示法的小数位数 |
5. setiosflags ()用法:
setiosflags() | 解释 |
---|
setiosflags(ios::fixed) | 固定的浮点显示 |
setiosflags(ios::scientific) | 用指数方式表示实数 |
setiosflags(ios::left) | 左对齐 |
setiosflags(ios::right) | 右对齐 |
setiosflags(ios::skipws) | 忽略前导空白 |
setiosflags(ios::uppercase) | 16进制数大写输出 |
setiosflags(ios::lowercase) | 16进制小写输出 //VS2010中该方法已不使用,意外使用显示没有该成员错误。 |
setiosflags(ios::showpoint) | 强制显示小数点 |
setiosflags(ios::showpos) | 强制显示符号 |
6. resetflags(long f)方法的用法
该方法是setiosflags方法的反向方法,即清除之前语句中所使用的setiosflags设定的格式,恢复为默认格式。