#include <iostream>
#include <cstdlib>
#include <cstring>
#include <iomanip> // 控制符头文件
using namespace std;
// 格式化输出
void func(){
// 方式一:使用成员方法
int number = 10;
cout << number << endl;
cout.unsetf(ios::dec);
// 八进制
cout.setf(ios::oct);
cout.setf(ios::showbase);
cout << number << endl; // 012
// 十六进制
cout.unsetf(ios::oct);
cout.setf(ios::hex);
cout << number << endl; // 0xa
// 固定宽度
cout.width(10);
cout.fill('*');
cout << number << endl; // *******0xa
// 上面的设置只对当前输出有效,下次的输出格式要重新设置
cout.setf(ios::left);
cout.width(10);
cout.fill('*');
cout << number << endl; // 0xa*******
// 方式二:使用控制符的方式
cout << hex
<< setiosflags(ios::showbase)
<< setiosflags(ios::right)
<< setw(10)
<< setfill('~')
<< number
<< endl; // ~~~~~~~0xa
}
#include <iostream>
#include <iomanip>
using namespace std;
int main()
{
double x = 1234567.89, y = 12.3456789;
int m = 12, n = 1234567;
// 控制精度为 6 位有效数字,会被四舍五入
// 整型不受精度控制
cout << setprecision(6) << x << endl << y << endl << m << endl << n << endl;
cout << "------------------" << endl;
// 控制小数点后有 6 位小数,不够的补 0,同样会被四舍五入
// 同样,整型不受精度控制
cout << setiosflags(ios::fixed) << setprecision(6) << x << endl << y << endl << m << endl << n << endl;
return 0;
}
输出:
1.23457e+06
12.3457
12
1234567
------------------
1234567.890000
12.345679
12
1234567