C++标准输出的格式控制

2023-01-08 14:59:54

C++标准输出的一些格式控制符如下,使用这些控制符之前,必须在程序开头加上头文件:#include <iomanip>

left 输出数据在指定宽度内左对齐
right 输出数据在指定宽度内右对齐
internal 输出数据在指定宽度内内部对齐
boolalpha 把逻辑值输出为true或false,否则就输出0或1
fixed 按定点格式显示浮点数
scientific 输出的浮点数按科学表示法表示
showpos 输出若为正数,也要显示其前面的+号
showbase 显示数制标志
showpoint 输出浮点数的小数部分为0也显示小数点
oct 将整数按照8进制输出
dec 将整数按照10进制输出
hex 将整数按照16进制输出
setbase 设置整数的进制(8,10,16)
setw 设置输出字段宽度
setprecision 设置浮点数的有效位数
setfill 设置字符填充

具体演示如下:

头部文件要加上#inlude <iomanip>:

#include <iostream>
#include <iomanip>
using namespace std;

1.left+setw:

int a = -1234321;
cout << setw(20)<<a << endl;
cout <<setw(20)<< left << a << endl;

这里使用setw(20)来指定输出数据段的宽度为20,结果如下:

可以看到,在指定输出宽度后,数据是默认右对齐的,使用left控制符后,输出变成左对齐。

2.right+stew:

int a = -1234321;
cout << setw(20)<<a << endl;
cout <<setw(20)<< right << a << endl;

 结果如下:

 说明C++在指定输出宽度后确实是默认右对齐的。

3.internal+stew:

int a = -1234321;
cout << setw(20)<<a << endl;
cout <<setw(20)<< internal << a << endl;

结果如下:

 内部对齐就是符号左对齐,而数字右对齐。

4.boolalpha:

cout << (2 > 1)<<endl;
cout << (2 < 1) << endl;
cout << boolalpha << (2 > 1) << endl;
cout << boolalpha << (2 < 1) << endl;

结果如下:

 5.fixed:

double a = 23.45;
cout << a << endl;
cout << fixed << a << endl;

结果如下:

6. scientific:

double a = 23.45;
cout << a << endl;
cout << scientific << a << endl;

结果如下:

 

7.showpos:

double a = 23.45;
cout << a << endl;
cout << showpos << a << endl;

结果如下:

 

8.showbase+setbase:

int a = 23;
cout << a << endl;
cout << setbase(8) << showbase << a << endl;
cout << setbase(10) << showbase << a << endl;
cout << setbase(16) << showbase << a << endl;

结果如下:

10进制是默认的,不显示进制标志。

9.showpoint: 

double a = 23;
cout << a << endl;
cout << showpoint << a << endl;

结果如下:

10. oct+dec+hex:

int a = 100;
cout << a << endl;
cout << oct << a << endl;
cout << dec << a << endl;
cout << hex << a << endl;

结果如下:

 100的八进制数为144,十六进制数为64。

11.setprecision和fixed+setprecision和scientific+setprecision:

double a = 23.45;
cout << a << endl;
cout << setprecision(4) << a << endl;
cout << fixed << setprecision(4) << a << endl;
cout << scientific << setprecision(4) << a << endl;

结果如下:

setprecision(4)表示保留4位有效数字,而fixed+setprecision(4)表示小数位保留4位有效数字,而scientific+setprecision(4)则表示科学表示法中的底数的小数位保留4位有效数字。 

12.setfill+setw:

cout << 66 << 88 << endl;
cout << setw(8) << setfill('@') << 66 << 88 << endl;
cout << setw(8) << 66 << 88 << setfill('@') << endl;

结果如下:

必须设置好输出字段宽度,才能进行填充,且不管填充操作是前是后,都默认为左填充。 

  • 作者:金泽遗梦
  • 原文链接:https://blog.csdn.net/XIETINGYUWO/article/details/126979100
    更新时间:2023-01-08 14:59:54