格式规范语法:printf 和 wprintf 函数

描述格式字符串参数的语法。printfwprintf和相关功能。 这些功能的更安全版本可用;有关更多信息,请参见 CRT中的安全功能。 有关各个功能的信息,对于某些特定功能请参见文档。 有关列出了这些功能,请参见 流I/O

格式规范,包括选项和必填字段,具有以下形式:

%[标志] [宽度] [.精度] [{h | l | ll | w | I | I32 |I64}] 类型

格式规范的每个字段是字符或表示特定布局选项或转换说明符的数目。 必需的 type 字符指定要应用的此转换于参数。 选项 flags、width和 precision 字段控件其他布局方面。 基本格式规范包含百分号和仅 type 字符 (例如,%s,指定字符串转换。 如果百分号由没有意义为格式字段的字符后跟,字符将复制到未更改的输出。 打印 PERCENT 符号字符,请使用 %%。

格式规范的字段控件参数转换和格式化的以下方面:

  • type
    确定所需的转换说明符字符关联的 argument 是否被解释为字符、字符串、整数或浮点数。 有关更多信息,请参见printf键入域字符

  • flags
    控件输出符号,空白,前导零调整和输出的选项字符,小数点和八进制和十六进制前缀。 有关更多信息,请参见标志指令。 多个标志可以出现在格式规范,因此,标志可以按任意顺序显示。

  • width
    指定字符的最小作为输出的选项十进制数字。 有关更多信息,请参见printf宽度规范

  • precision
    指定的最大字符数为字符串、有效位的数目或数字个数,在浮点值中的小数点字符或数字后的最小值打印对于整数值打印的选项十进制数字。 有关更多信息,请参见“精度值如何影响类型”。精度规范

  • h | l | ll | w | I | I32 | I64
    指定一个对应的参数的大小。type 的选项卡标题。 有关更多信息,请参见中的"范围在 大小规格前缀”。

安全说明安全说明

确保格式规范字符串不是用户定义的。例如,请考虑提示用户输入名称的程序并输入存储在名为 name的字符串变量。打印 name,不要这样做:

printf( name ); /* Danger! If name contains "%s", program will crash */

相反,请执行下列操作:

printf( "%s", name );

请参见

参考

printf, _printf_l, wprintf, _wprintf_l

printf_s, _printf_s_l, wprintf_s, _wprintf_s_l

printf_p位置参数

标志指令

printf宽度规范

精度规范

大小规格

printf键入域字符