跳转到内容

printf

void  printf(string format, ...)

格式字符串是C语言printf格式字符串的简化版本。 当字符串中出现%符号时,将按照%符号后的字符指定的格式输出参数。 参数转换由单个字母指定:gfsdxcp

您可以在格式选项前添加可选的前缀字符来控制输出格式。前缀的一般形式为 [标志][宽度][.精度][格式],其中标志可以是:

  • -:结果将在字段中左对齐
  • +:数值前将添加+表示正值。该标志的一个非标准行为是,当设置+标志时,字符串参数将被引号包围。
  • 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));