iomanip在c++程序里面经常见到下面的头文件#include ,io代表输入输出,manip是manipulator(操纵器)的缩写(在c++上只能通过输入缩写才有效。)
***dec 设置整数为十进制
hex 设置整数为十六进制
oct 设置整数为八进制
setbase(n) 设置整数为n进制(n=8,10,16)
setfill(n)
设置字符填充,c可以是字符常或字符变量
setprecision(n) 设置浮点数的有效数字为n位
setw(n) 设置字段宽度为n位
setiosflags(ios::fixed) 设置浮点数以固定的小数位数显示
setiosflags(ios::scientific) 设置浮点数以科学计数法表示
setiosflags(ios::left) 输出左对齐
setiosflags(ios::right) 输出右对齐
setiosflags(ios::skipws) 忽略前导空格
setiosflags(ios::uppercase) 在以科学计数法输出E与十六进制输出X以大写输出,否则小写。
setiosflags(ios::showpos) 输出正数时显示”+”号
setiosflags(ios::showpoint) 强制显示小数点
resetiosflags() 终止已经设置的输出格式状态,在括号中应指定内容*
#include<iostream>
#include<iomanip>
using namespace std;
int main(){
int a = 3;
int b = 2;
cout << setprecision(2) << fixed <<(double)a/b << endl;
return 0;
}
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
cout << 12345.0 << endl;//输出"12345"
cout << setiosflags(ios::fixed) << setprecision(3) << 1.2345 << endl;//输出"1.234"(遵循四舍六入五成双的原则,而不是四舍五入的原则)
cout << resetiosflags(ios::fixed);//需要用resetiosflags()函数清除前面的输出格式
cout << setiosflags(ios::scientific) << 12345.0 << endl;//输出"1.23e+004"
return 0;
}