printf
void printf(string format, ...)
格式字符串是C语言printf
格式字符串的简化版本。
当字符串中出现%
符号时,将按照%
符号后的字符指定的格式输出参数。
参数转换由单个字母指定:g
、f
、s
、d
、x
、c
、p
。
您可以在格式选项前添加可选的前缀字符来控制输出格式。前缀的一般形式为
[标志][宽度][.精度][格式]
,其中标志可以是:
-
:结果将在字段中左对齐+
:数值前将添加+
表示正值。该标志的一个非标准行为是,当设置+
标志时,字符串参数将被引号包围。0
:对于数值,使用前导零填充字段。
宽度
宽度可以通过一个或多个十进制数字指定。或者,如果给出星号(*
),宽度将从printf
参数列表中的下一个值获取。
精度
精度可以通过一个或多个十进制数字指定。或者,如果给出星号(*
),宽度将从printf
参数列表中的下一个值获取。
支持的不同格式字符有:
%g
、%p
、%c
以”通用”形式打印整数、浮点数、向量、vector4、matrix3、矩阵或字符串。
%f
、%e
、%E
以浮点数形式打印浮点数、向量、vector4、matrix3或矩阵。
%s
打印字符串。
%d
、%i
以十进制形式打印整数变量。
%x
、%X
以十六进制形式打印整数变量。值前将添加”0x”前缀(例如0×42)。
%o
以八进制形式打印整数变量。
%%
打印百分号(%)。
示例
printf("P = %g, dot(N, P) = %g, %d = %x\n", P, dot(N, P), ptnum, ptnum);printf("RGB = {%g,%g,%g}\n", clr.r, clr.g, clr.b);printf("P = %20s\n", "20 chars");printf("%-+20s\n", "左对齐并加引号");printf("%+08.3g\n", velocity);printf("%*.*g\n", width, precision, value);Cf = texture(sprintf("/maps/map%d.rat", i));Cf = texture(sprintf("/maps/map%04d.rat", i));