现代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);

浙公网安备 33010602011771号