您好,登錄后才能下訂單哦!
std::format
是 C++20 中引入的一個(gè)新特性,它提供了一種類型安全且易于使用的方式來格式化字符串。與 std::string
的 +
或 +=
操作符進(jìn)行字符串拼接相比,std::format
提供了更強(qiáng)大和靈活的格式化選項(xiàng)。
以下是 std::format
的一些主要格式化選項(xiàng):
對(duì)齊:
{:<width>}
可以使字符串左對(duì)齊,并使用空格填充至指定寬度。{:>width}
可以使字符串右對(duì)齊,并使用空格填充至指定寬度。{:^width}
可以使字符串居中對(duì)齊,并使用空格填充至指定寬度。填充字符:
{:0>5}
會(huì)生成一個(gè)左對(duì)齊的字符串,并使用 0
填充至寬度為 5
。寬度和精度:
{:width}
:指定總寬度。{:精度}
:對(duì)于浮點(diǎn)數(shù),指定小數(shù)點(diǎn)后的位數(shù);對(duì)于整數(shù),指定顯示的位數(shù)。類型轉(zhuǎn)換:
d
(十進(jìn)制整數(shù))、u
(無符號(hào)十進(jìn)制整數(shù))、x
(十六進(jìn)制整數(shù),帶前綴 0x
或 0X
)、o
(八進(jìn)制整數(shù),帶前綴 0o
或 0O
)等。std::format::formatter
接口來自定義格式化邏輯。標(biāo)記:
{}
作為占位符,并在其后指定格式選項(xiàng)。+
表示始終顯示符號(hào)(對(duì)于正數(shù)和負(fù)數(shù)),-
表示左對(duì)齊輸出,0
表示使用零填充等。命名占位符(C++23 引入):
#name
作為占位符前綴,后跟名稱,可以在格式字符串中引用之前定義的命名占位符。例如,{a:0>5}
和 {b:0>5}
可以在之前的格式字符串中分別定義為 {a:0>5}
和 {b:0>5}
,然后在一個(gè)后續(xù)的格式字符串中這樣使用:{a#}{b#}
。下面是一個(gè)簡單的示例,展示了如何使用 std::format
的一些基本格式化選項(xiàng):
#include <iostream>
#include <format>
int main() {
int age = 30;
double salary = 5000.75;
std::string name = "Alice";
std::string formatted_string = std::format("Name: {:<10} | Age: {:>3} | Salary: {:.2f}", name, age, salary);
std::cout << formatted_string << std::endl;
return 0;
}
輸出:
Name: Alice | Age: 30 | Salary: 5000.75
在這個(gè)示例中,我們使用了左對(duì)齊、寬度指定、精度指定和類型轉(zhuǎn)換等格式化選項(xiàng)來創(chuàng)建一個(gè)格式化的字符串。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。