现代c++学习导论 p2 关于<print>

现代c++学习导论 p2 关于<print>

std::print() 的第一个参数是std::format_string, 形如"hello, world. x = {}"
接下来的参数数量要与第一个参数中{}的数量对应, 如std::print("x = {}, y = {}", x, y);

std::println()std::print()的基础上加一个换行
尽管一个参数都不写用来换行在c++23标准中不受支持(在c++26中加入), 但主流的编译器都支持这一操作

格式化输出

{}中可以加入参数索引, 从0开始, 否则按默认顺序

std::print("y = {1}, x = {0}", x, y);

:后限定格式要求,:后第一个数用来限定宽度

std::print("|{:5}|", 42); // |   42|

< 表示左对齐 (默认为非整数和非浮点数)。
> 表示右对齐 (默认为整数和浮点数)。
^ 表示居中对齐。

std::print("|{:<5}|", 42); // |42   |

<>^前指定填充字符

小技巧

std::print("{:#<16}", "");

相当于python的

print("#" * 16)

.后限制精度

double i {3.14};
std::print("{:.2}", i); // 3.1

符号可以是下列形式之一:
- 表示仅显示负数的符号 (默认值)。
+ 表示显示负数和正数的符号。
空格表示着负号应该用在负数上,空格应该用在正数上。

int i { 42 };
std::println("|{:<5}|", i); // |42 |
std::println("|{:<+5}|", i); // |+42 |
std::println("|{:< 5}|", i); // | 42 |

在最后是类型, 进一步指定进制等格式

int i { 42 };
std::println("|{:10d}|", i); // |        42|
std::println("|{:10b}|", i); // |    101010|
std::println("|{:#10b}|", i);// |  0b101010|
std::println("|{:10X}|", i); // |        2A|
std::println("|{:#10X}|", i);// |      0X2A|

以上所说还可以嵌套在一起

std::println("|{2:{0}.{1}f}|", width, precision, d); 
posted @ 2026-08-31 20:07  feng_qi_yun  阅读(7)  评论(0)    收藏  举报