话不多说,直接上码:
#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
double a=12.112344;
double b=1.53;
cout<<setiosflags(ios::fixed)<<setprecision(6)<<setiosflags(ios::left);
cout<<setw(12)<<a<<setw(12)<<b<<endl;
cout<<setw(12)<<b<<setw(12)<<a<<endl;
return 0;
}
//输出结果为:
12.112344 1.530000 //12.112344前面有3个空格,1.530000前面有4个空格
1.530000 12.112344 //1.530000前面有4个空格,12.112344前面有3个空格
代码解释如下:
1.setprecision(6):一般和setiosflags(ios::fixed)配合使用,若输出的数为小数,则输出结果保留6位小数,要保留几位小数括号里就输入对应的数字。
2.setiosflags(ios::fixed):固定输出格式,配合setprecision()函数使用,例如:
cout<<setiosflags(ios::fixed)<<setprecision(6);
cout<<5.1<<endl;
输出结果为5.100000。
3.setiosflags()、setprecision()、setw()三个函数的定义包含在iomanip头文件中。
4.setw()函数一般放在要输出的内容前面,表示输出内容占几个格子,不足的用空格补齐。
示例1:
cout<<setw(10)<<5.23;//输出结果为: 5.23
//5.23的前面有7个空格,输出内容默认右对齐
示例2:
cout<<setw(4)<<1.2345<<setw(4)<<1.1;//输出结果为:1.2345 1.1
//首先1.2345的输出格式占4个格子,但是其本身需要占5个格子,所以从格子最左端输出。
//而1.1输出格式占4格,其本身占3个格子,不足的一个格子用空格补齐。
5.setiosflags(ios::left)控制输出左对齐,setiosflags(ios::right)控制输出右对齐。