C++ Library - <format>



The <format> library in C++20, provides a flexible mechanism for formatting strings, numbers and other data type. It simplifies the formatting process and eliminate many of the issues associated with older formatting techniques like printf or std::stringstream.

The <format> library supports various data types, including integers, floating-point numbers, characters and strings. It also allows to control precision, padding, alignment and other formatting aspects through format specifiers.

Including <format> Header

To include the <format> header in your C++ program, you can use the following syntax.

 #include <format> 

Functions of <format> Header

Below is list of all functions from <format> header.

Sr.NoFunctions & Description
1begin

It returns an iterator to the beginning of the format string range.

2end

It returns an iterator to the end of the format string range.

3advance_to

It advances the begin iterator to the given position.

4next_ard_id

It enters automatic indexing mode, and returns the next argument index.

5check_arg_id

It enters manual indexing mode, checks if the given argument index is in range.

6check_dynamic_spec

It checks if the type of the corresponding format argument with the given argument index is in the given type template arguments.

String Formatting

In the following example, we are going to format string using the std::format() to format a string with placeholder.

 #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; } 

Output

Following is the output of the above code −

 Name: ABC , Age: 12 

Aligning Text

Let's look at the following example, where we are going to align the text Suresh to the left using the {:<1} specifier and the text Ramesh to the right using the {:>20} specifier.

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

Output

Output of the above code is as follows −

 Suresh Ramesh 
Advertisements
close