github fmt库语法+范例(fmt version :7.0.1) (2)

11、precision是一个十进制数字,表示以\'f\'和\'F\'格式设置的浮点值在小数点后应显示多少位数,用\'g\'或\'G\'格式化的浮点值小数点前后。对于非数字类型,该字段指示最大字段大小,换句话说,字段内容中将使用多少个字符。整数,字符,布尔值和指针值不允许使用精度。

12、type字段决定了应如何显示数据。

13、可用的字符串表示类型为:
Type   Meaning
\'s\' 字符串格式。字符串的默认类型,可以省略
none 与\'s\'相同

14、可用的字符显示类型为:
Type Meaning
\'c\' 字符格式。字符的默认类型,可以省略。
none 与\'c\'相同

15、可用的整数表示类型为:

Type Meaning
\'b\'   二进制格式。输出以2为进制的数字。在此类型中使用\'#\'选项,会将前缀“ 0b”添加到输出值中。value.  
\'B\'   二进制格式。输出以2为进制的数字。对此类型使用\'#\'选项,可在输出值中添加前缀“ 0B”。  
\'d\'   十进制整数。输出以10为进制的数字。  
\'0\'   八进制格式。输出以8为进制的数字。  
\'x\'   十六进制格式。输出以16为进制的数字,对9以上的数字使用小写字母。将\'#\'选项与该类型一起使用时,会将前缀“ 0x”添加到输出值中。  
\'X\'   十六进制格式。输出以16为进制的数字,对9以上的数字使用大写字母。将\'#\'选项与该类型一起使用时,会将前缀“ 0X”添加到输出值中。  
\'L\'   特定于语言环境的格式。这与\'d\'相同,除了它使用当前的语言环境设置来插入适当的数字分隔符。  
none   与 \'d\' 相同  

16、整数表示类型也可以与字符和布尔值一起使用。如果未指定输出类型,布尔值使用文本表示形式设置为true或false,

17、浮点值的可用显示类型为:

Type Meaning
\'a\' 十六进制浮点格式。打印以16为底的数字,前缀为“ 0x”,小写字母表示9以上的数字。使用\'p\'表示指数。
\'A\' 与 \'a\' 相同,不同之处在于它使用大写字母作为前缀,数字大于9并表示指数。
\'e\' 指数表示法。使用字母“ e”以科学计数法打印数字以表示指数。
\'E\' 指数表示法。与\'e\'相同,除了它使用大写字母\'E\'作为分隔符。
\'f\' 固定点。将数字显示为定点数字。
\'F\' 固定点。与\'f\'相同,但是将nan转换为NAN,将inf转换为INF。
\'g\' 通用格式。对于给定的精度p > = 1,这会将数字四舍五入为p个有效数字,然后根据结果的大小以定点格式或科学计数法格式化结果。精度0等同于精度1。
\'G\' 通用格式。与“ g”相同,但如果数字太大则切换到 \'E\'。无限大和NaN的表示也都是大写的。
\'L\' 特定于语言环境的格式。这与\'g\'相同,只是它使用当前的语言环境设置来插入适当的数字分隔符。
none 与“\'g\'相似,不同之处在于定点表示法在使用时,其小数点后至少有一位数字。默认精度与表示特定值所需的精度一样高。

18、指针的可用显示类型为:

Type Meaning
\'p\' 指针格式。这是指针的默认类型,可以省略。
none 与 \'p\'相同

D、格式范例

本节包含格式语法的示例以及与printf格式的比较。

1、大多数情况下,语法类似于printf格式,加上{} 和 :代替%。例如,“%03.2f”可以转换为“{ :03.2f }”。

2、新格式的语法还支持新的和不同的选项,如以下示例所示。

2.1、按位置访问参数:

fmt::format("{0}, {1}, {2}", \'a\', \'b\', \'c\'); // Result: "a, b, c" fmt::format("{}, {}, {}", \'a\', \'b\', \'c\'); // Result: "a, b, c" fmt::format("{2}, {1}, {0}", \'a\', \'b\', \'c\'); // Result: "c, b, a" fmt::format("{0}{1}{0}", "abra", "cad"); // Result: "abracadabra"

2.2、对齐文本并指定宽度:

fmt::format("{:<30}", "left aligned"); // Result: "left aligned " fmt::format("{:>30}", "right aligned"); // Result: " right aligned" fmt::format("{:^30}", "centered"); // Result: " centered " fmt::format("{:*^30}", "centered"); // use \'*\' as a fill char // Result: "***********centered***********"

2.3、动态宽度:

fmt::format("{:<{}}", "left aligned", 30); // Result: "left aligned

2.4、动态精度:

fmt::format("{:.{}f}", 3.14, 1); // Result: "3.1"

2.5、% + f,% - f和%f并指定符号:

fmt::format("{:+f}; {:+f}", 3.14, -3.14); // show it always // Result: "+3.140000; -3.140000" fmt::format("{: f}; {: f}", 3.14, -3.14); // show a space for positive numbers // Result: " 3.140000; -3.140000" fmt::format("{:-f}; {:-f}", 3.14, -3.14); // show only the minus -- same as \'{:f}; {:f}\' // Result: "3.140000; -3.140000"

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zgyzyg.html