C++——格式化控制台输出

格式化控制台输出

下面的函数都是流操作,也就是在"<<"或">>"(流操作符)间使用,定义在<iomanip>头文件中

#include  <iomanip>
操作 描述
setprecision(n) 设置一个浮点数的精度
fixed 显示小数位,常与setprecision(n)联合使用
showpiont 即使没有小数位也要用0补齐,常与setprecision(n)联合使用
setw(width) 指定打印字段的宽度
left 调整输出到左边
right 调整输出到右边

1. setprecision(n)

double number = 123.4567;
cout << setprecision(3) << number << endl;
//123
cout << setprecision(4) << number << endl;
//123.5
cout << setprecision(5) << number << endl;
//123.46
cout << setprecision(6) << number << endl;
//123.457

2.fixed

double number = 123232456743.4567;
cout << number << endl;
//1.23232e+011
//这是科学计数法的形式,即1.23232*10^11
//要想以非科学计数法的形式显示就要使用fixed函数
cout << fixed << number << endl;
//123232456743.456696
//由于浮点数的精度问题导致小数位有一些偏差
cout << fixed << setprecision(4) << number << endl;
//123232456743.4567

3. showpoint

cout << setprecision(6);
cout << 12.3 << endl;
//12.3
cout << showpoint << 12.3 << endl;
//12.3000
cout << showpoint << 12.30 << endl;
//12.3000

4. setw(width)

cout << setw(8) << "C++" << setw(6) << 101 <<endl;
cout << setw(8) << "Java" << setw(6) << 101 <<endl;
cout << setw(8) << "HTML" << setw(6) << 101 <<endl;

程序运行结果:

  

 注意:stew函数只能影响下一个也就是说如果没有setw(6),101就会紧贴着前面。

这时候又会有一个问题,就是当我们设置的宽度小于输出项的宽度会怎么样?

答:当我们设置的宽度小于输出项的宽度时,宽度会自动增加为输出项的宽度,相当于没有设置宽度。

5. left和right

setw操作默认的设置是右对齐,我们可以使用left使其左对齐

cout << left;
cout << setw(8) << "C++" << setw(6) << 101 <<endl;
cout << setw(8) << "Java" << setw(6) << 101 <<endl;
cout << setw(8) << "HTML" << setw(6) << 101 <<endl;

猜你喜欢

转载自www.cnblogs.com/bwjblogs/p/12606294.html