C++(20):format格式化字符串

C++中格式化字符串一直都比较的繁琐,C++20提供了format用于优化这一过程。

#include 
#include 
using namespace std;

int main()
{
    cout<

format的第一个参数为字符串模板,跟printf的第一个参数类似。

其中{}用于占位符,类似于printf中的%d,%s。

{}中如果未指明索引,则从后续的参数列表中依次读取参数。

因此format("hello {}, and {}\n", "world", 88)格式化返回的字符串是:hello world, and 88

{}中如果指明了位置的索引(从0开始),则从后续参数所对应的位置读取参数

因此format("hello {1}, and {0}\n", 88, "world")格式化返回的字符串是:hello world, and 88

需要注意的是不能混合使用无位置的{}与有位置的{index}

1.控制格式化输出的形式

format可以通过如下的可选指令顺序,控制格式化输出的形式

[[fill]align][sign][#][0][width][.precision][type]

2.控制输出的宽度[width]

可以通过{:5}这种方式指定输出至少要有多少个字符:

format("hello [{:10}], and [{:6}]\n", "world", 88);
//格式化后的字符串为:
hello [world     ], and [    88],可以看到对输出的宽度进行了控制

对于数值,可以在宽度前加0,表示以0进行补全宽度

format

你可能感兴趣的:(c++)