C++ 庫 - <format>



C++20 中的<format>庫提供了一種靈活的機制來格式化字串、數字和其他資料型別。它簡化了格式化過程,並消除了與舊的格式化技術(如printf或std::stringstream)相關的許多問題。

<format>庫支援各種資料型別,包括整數、浮點數、字元和字串。它還允許透過格式說明符來控制精度、填充、對齊和其他格式方面。

包含<format>標頭檔案

要在你的C++程式中包含<format>標頭檔案,可以使用以下語法。

#include <format>

<format>標頭檔案的函式

以下是<format>標頭檔案中所有函式的列表。

序號 函式及描述
1 begin

它返回指向格式字串範圍開頭的迭代器。

2 end

它返回指向格式字串範圍末尾的迭代器。

3 advance_to

它將begin迭代器推進到給定位置。

4 next_arg_id

它進入自動索引模式,並返回下一個引數索引。

5 check_arg_id

它進入手動索引模式,檢查給定的引數索引是否在範圍內。

6 check_dynamic_spec

它檢查具有給定引數索引的相應格式引數的型別是否在給定的型別模板引數中。

字串格式化

在下面的示例中,我們將使用std::format()來格式化帶有佔位符的字串。

#include <iostream>
#include <format>
int main() {
   std::string x = "ABC";
   int y = 12;
   std::string z = std::format("Name: {} , Age: {}", x, y);
   std::cout << z << std::endl;
   return 0;
}

輸出

以下是上述程式碼的輸出:

Name: ABC , Age: 12

文字對齊

讓我們來看下面的例子,我們將使用{:<1}說明符將文字Suresh左對齊,使用{:>20}說明符將文字Ramesh右對齊。

#include <iostream>
#include <format>
int main() {
   std::string a = std::format("{:<1} {:>20}", "Suresh", "Ramesh");
   std::cout << a << std::endl;
   return 0;
}

輸出

上述程式碼的輸出如下:

Suresh               Ramesh
廣告