添加头文件#include <iomanip>
使用控制符控制输出格式
控制符 | 作用 |
dec | 设置整数的基数为10 |
hex | 设置整数的基数为16 |
oct | 设置整数的基数为8 |
setbase(n) | 设置整数的基数为n(n只能是16,10,8之一) |
setfill(c) | 设置填充字符c,c可以是字符常量或字符变量 |
setprecision(n) | 设置实数的精度为n位。在以一般十进制小数形式输出时,n代表有效数字。在以fixed(固定小数位数)形式和scientific(指数)形式输出时,n为小数位数。 |
setw(n) | 设置字段宽度为n位。 |
setiosflags(ios::fixed) | 设置浮点数以固定的小数位数显示。 |
setiosflags(ios::scientific) | 设置浮点数以科学计数法(即指数形式)显示。 |
setiosflags(ios::left) | 输出数据左对齐。 |
setiosflags(ios::right) | 输出数据右对齐。 |
setiosflags(ios::shipws) | 忽略前导的空格。 |
setiosflags(ios::uppercase) | 在以科学计数法输出E和十六进制输出字母X时,以大写表示。 |
setiosflags(ios::showpos) | 输出正数时,给出“+”号。 |
resetiosflags | 终止已设置的输出格式状态,在括号中应指定内容。 |
1.setw() 函数用于设置字段的宽度,语法格式如下:
setw(n) n表示宽度,用数字表示。
setw() 函数只对紧接着的输出产生作用。
当后面紧跟着的输出字段长度小于 n 的时候,在该字段前面用空格补齐,当输出字段长度大于 n 时,全部整体输出
cout<<setw(10)<<"hello"<<endl;
hello 大小是5,会在hello前面5个空格。
2.setprecision(n)
setprecision(n)指定一个浮点数的精度。
可以指定一个浮点数打印几位数字,其中n是总位数!!包括小数之前和之后的数字。超出的位数会被四舍五入进去!!!
例如
double num = 1.23456;
cout<<setprecision(2)<<num<<endl; ---- 输出1.2
cout<<setprecision(4)<<num<<endl; ---- 输出1.235
cout<<setprecision(5)<<num<<endl; ---- 输出1.22346
注意:与setw()不同setprecision(n)一直作用到下一个setprecisin(n)之前,所以,只需要写一个setprecision(n)就可以。setw()要每次都写。
3.fixed
fixed可以强制数值不以科学技术法显示,即只用小数形式显示。
(在遇见大的浮点数时候,计算机会以科学技术法形式显示浮点数)默认情况下,使用fixed之后,小数点后面数字位数为6,
如:double i = 1.23;
cout<<fixed<<i<<endl;
会输出1.230000
我们可以使用fixed和setprecision(n)一起使用的方法,来改变这个小数点后的位数,当setprecision(n)作用于fixed之后时候,
setprecision(n)指定的是小数点后的数字位数
如:double num = 3.141592653;
cout<<fixed<<setprecision(2)<<num<<endl;
输出:3.14
注意,默认情况下,没有小数的部分不会显示小数点。但使用fixed之后,会强制显示小数点。
如double i= 1;
cout<<fixed<<i<<endl;
显示 1.000000
4.showpoint (与setprecision(n)一起使用)
showpoint 强制小数后面以0显示。
cout<<setprecision(6);
cout<<showpoint<<1.23<<endl; ----显示 1.23000
cout<<showpoint<<123.0<<endl; ----显示 123.000
5. right /left 对齐方式
大多数系统默认情况下为右对齐,
可以使用;eft ,将输出格式左对齐
用法
cout<<left;
cout<<setw(8)<<1.23<<endl;
cout<<setw(8)<<1.23456<<endl;