printf键入域字符
在格式规范,type 字符是指定的转换说明符对应的实参将被解释为字符、字符串、指针、整数或浮点数。 type 字符是唯一所需的格式规范字段,因此,在任何可选字段后出现。
遵循格式字符串的参数根据相应的 type 字符和选项 范围 标题解释。 char 类型的 char 和 wchar_t 将指定使用 c 或 C,使用 s 或 S,并且,单字节和多字节或宽字符字符串指定,格式设置功能使用。 通过使用 c,并 s 被解释为 char 和 char* 由 printf 函数族的字符和字符串参数,或作为 wchar_t 和 wchar_t* 由 wprintf 函数族。 通过使用 C,并 S 被解释为 wchar_t 和 wchar_t* 由 printf 函数族的字符和字符串参数,或作为 char 和 char* 由 wprintf 函数族。
整数类型 (如 short,int,long,long long,使用 d、i、o、u、x和 X,并且,它们的 unsigned 变量,指定。 使用 a、A、e、E、f、g和 G,浮点类型 (如 float、double和 long double,指定。 默认情况下,除非 size 字段长度标题进行修改,整数参数强制为 int 类型,因此,浮点参数强制为 double。 在 64 位系统,int 为 32 位值;因此,64 位整数将被截断,在以后针对输出进行格式设置,除非使用 ll 或 I64size 前缀。 由 p 使用指定默认值的长度平台的指针类型。
备注
C、S和 Z 类型字符和 c 和 s 类型字符的行为,在使用与 printf 和 wprintf 功能,是 Microsoft 扩展并不兼容的 ANSI。Visual C++ 不支持 F 类型字符。
printf 键入域字符
键入字符 |
参数 |
输出格式 |
---|---|---|
c |
字符 |
当使用 printf 函数,指定单字节字符;当使用 wprintf 函数,指定宽字符。 |
C |
字符 |
当使用 printf 函数,指定宽字符;当使用 wprintf 函数,指定单字节字符。 |
d |
Integer |
签名的十进制整数。 |
i |
Integer |
签名的十进制整数。 |
o |
Integer |
无符号八进制整数。 |
u |
Integer |
无符号十进制整数。 |
x |
Integer |
无符号的十六进制整数;使用“abcdef”。 |
X |
Integer |
无符号的十六进制整数;使用“ABCDEF”。 |
e |
浮点 |
具有以下形式的有符号值 [ – ]d.dddd e [符号]dd[d]d 是一个十进制数的位置,dddd 是一个或多个十进制数字,dd[d] 是两个或三个十进制数字基于指数的 输出格式 和大小,并且,sign 为 + 或 -。 |
E |
浮点 |
与 e 格式,但 E 而不是 e 引入指数。 |
f |
浮点 |
具有以下形式的有符号值 [ – ]dddd.dddd,其中 dddd 是一个或多个十进制数字。 小数点前的位数取决于数字的量级,而小数点后的位数取决于请求的精度。 |
g |
浮点 |
签名的值。f 或 e 格式显示,其中为个特定的值和精度简洁。 使用 e 格式,只有 + 当该值的指数小于时– 4 或大于或等于 precision 参数。 显示尾随零被截断,并且,小数点出现,只有 + 当一个或多个数字执行。 |
G |
浮点 |
与 g 格式,除此之外,E,而不是 e,引入了指数 (合适的位置)。 |
a |
浮点 |
具有以下形式的签名的十六进制双精度浮点值 [−]0x0xh.hhhhp±dd,其中 h.hhhh 是 十六进制数字 (使用小写字母) 该尾数和 dd 是指数的一个或多个数字。 精度在调用点后面指定数字个数。 |
A |
浮点 |
具有以下形式的签名的十六进制双精度浮点值 [−]0x0Xh.hhhhP±dd,其中 h.hhhh 是 十六进制数字 (使用大写字母) 该尾数和 dd 是指数的一个或多个数字。 精度在调用点后面指定数字个数。 |
n |
为整数的指针 |
到目前为止至流或缓冲区已成功写入字符数。 此值在地址是作为参数的整数存储。 后参见中的"安全说明本文中。 |
p |
指针类型 |
显示参数为十六进制数字的地址。 |
s |
字符串 |
当使用 printf 功能,指定单字节或多字节字符字符串;当使用 wprintf 函数,指定宽字符字符串。 字符显示到第一个 null 字符或直到 precision 值为止。 |
S |
字符串 |
当使用 printf 函数,指定宽字符字符串;当使用 wprintf 功能,指定单字节或多字节字符字符串。 字符显示到第一个 null 字符或直到 precision 值为止。 |
Z |
ANSI_STRING 或 UNICODE_STRING 结构 |
当或 ANSI_STRING UNICODE_STRING 结构的地址将作为参数时,显示在缓冲区包含指向由框架的 Buffer 字段的字符串。 使用 w 长度修饰符标题指定 UNICODE_STRING 参数 (例如,%wZ。 必须设置结构的 Length 字段添加到长度,在字节,该字符串。 必须设置结构的 MaximumLength 字段添加到长度,在字节,缓冲区。 通常,Z 类型字符在驱动程序使用一个格式规范的调试功能仅使用,如 dbgPrint 和 kdPrint。 |
如果对应于一种浮点转换说明符的参数是无限大,不确定或 NAN,下表列出了格式化输出。
值 |
Output |
---|---|
+ infinity |
1.#INF随机数字 |
– infinity |
– 1.#INF随机数字 |
不确定 (和安静地 Nan 相同) |
digitrandom 数字. #IND |
NAN |
digitrandom 数字. #NAN |
备注
如果对应于 %Z,或者参数对应于 %s 或 %S参数的 Buffer 字段,是 null 指针,“(null)”会显示。
备注
是任何指数格式,指数数字的默认值的个数显示的是三。使用 _set_output_format 功能,可以设置数字个数显示为两,但外接到三,如果要求由指数的范围。
安全说明 |
---|
由于 %n 格式是本能不安全的,则默认情况下它将禁用。如果 %n 在格式字符串,遇到无效参数调用处理程序,如 参数验证所述。若要启用 %n,请参见 _set_printf_count_output。 |