- C++ Library - Home
 - C++ Library - <fstream>
 - C++ Library - <iomanip>
 - C++ Library - <ios>
 - C++ Library - <iosfwd>
 - C++ Library - <iostream>
 - C++ Library - <istream>
 - C++ Library - <ostream>
 - C++ Library - <sstream>
 - C++ Library - <streambuf>
 - C++ Library - <atomic>
 - C++ Library - <complex>
 - C++ Library - <exception>
 - C++ Library - <functional>
 - C++ Library - <limits>
 - C++ Library - <locale>
 - C++ Library - <memory>
 - C++ Library - <new>
 - C++ Library - <numeric>
 - C++ Library - <regex>
 - C++ Library - <stdexcept>
 - C++ Library - <string>
 - C++ Library - <thread>
 - C++ Library - <tuple>
 - C++ Library - <typeinfo>
 - C++ Library - <utility>
 - C++ Library - <valarray>
 
- The C++ STL Library
 - C++ Library - <array>
 - C++ Library - <bitset>
 - C++ Library - <deque>
 - C++ Library - <forward_list>
 - C++ Library - <list>
 - C++ Library - <map>
 - C++ Library - <multimap>
 - C++ Library - <queue>
 - C++ Library - <priority_queue>
 - C++ Library - <set>
 - C++ Library - <multiset >
 - C++ Library - <stack>
 - C++ Library - <unordered_map>
 - C++ Library - <unordered_set>
 - C++ Library - <vector>
 - C++ Library - <algorithm>
 - C++ Library - <iterator>
 
- The C++ Advanced Library
 - C++ Library - <any>
 - C++ Library - <barrier>
 - C++ Library - <bit>
 - C++ Library - <chrono>
 - C++ Library - <cinttypes>
 - C++ Library - <clocale>
 - C++ Library - <condition_variable>
 - C++ Library - <coroutine>
 - C++ Library - <cstdlib>
 - C++ Library - <cstring>
 - C++ Library - <cuchar>
 - C++ Library - <charconv>
 - C++ Library - <cfenv>
 - C++ Library - <cmath>
 - C++ Library - <ccomplex>
 - C++ Library - <expected>
 - C++ Library - <format>
 - C++ Library - <future>
 - C++ Library - <flat_set>
 - C++ Library - <flat_map>
 - C++ Library - <filesystem>
 - C++ Library - <generator>
 - C++ Library - <initializer_list>
 - C++ Library - <latch>
 - C++ Library - <memory_resource>
 - C++ Library - <mutex>
 - C++ Library - <mdspan>
 - C++ Library - <optional>
 - C++ Library - <print>
 - C++ Library - <ratio>
 - C++ Library - <scoped_allocator>
 - C++ Library - <semaphore>
 - C++ Library - <source_location>
 - C++ Library - <span>
 - C++ Library - <spanstream>
 - C++ Library - <stacktrace>
 - C++ Library - <stop_token>
 - C++ Library - <syncstream>
 - C++ Library - <system_error>
 - C++ Library - <string_view>
 - C++ Library - <stdatomic>
 - C++ Library - <variant>
 
- C++ STL Library Cheat Sheet
 - C++ STL - Cheat Sheet
 
- C++ Programming Resources
 - C++ Programming Tutorial
 - C++ Useful Resources
 - C++ Discussion
 
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.No | Functions & Description | 
|---|---|
| 1 | 
begin
 It returns an iterator to the beginning of the format string range.  | 
| 2 | 
end
 It returns an iterator to the end of the format string range.  | 
| 3 | 
advance_to
 It advances the begin iterator to the given position.  | 
| 4 | 
next_ard_id
 It enters automatic indexing mode, and returns the next argument index.  | 
| 5 | 
check_arg_id
 It enters manual indexing mode, checks if the given argument index is in range.  | 
| 6 | 
check_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