caracteres de campo del tipo printf

En una especificación de formato, el carácter de type es un especificador de conversión que especifica si el argumento correspondiente debe interpretarse como un carácter, una cadena, un puntero, un entero, o número de punto flotante.El carácter de type es el único campo necesario de la especificación de formato, y aparece después de cualquier campo opcional.

Los argumentos que siguen la cadena de formato se interpretan como el carácter correspondiente de type y el prefijo opcional de tamaño.Las conversiones de tipos de caracteres char y wchar_t se especifican mediante c o C, y el solo- byte y el multi- byte o cadenas de caracteres anchos se especifican mediante s o S, dependiendo de qué se utiliza la función de formato.Carácter y argumentos de cadena que se especifican con c y se interpreta s mientras se trabaja char y char* de la familia de printf, o como funciona wchar_t y wchar_t* de la familia de wprintf.Carácter y argumentos de cadena que se especifican con C y se interpreta S mientras se trabaja wchar_t y wchar_t* de la familia de printf, o como funciona char y char* de la familia de wprintf.

Especificar los tipos enteros como short, int, long, long long, y sus variantes de unsigned, mediante d, i, o, u, x, y X.Los tipos de punto flotante como float, double, y long double, se especifican mediante a, A, e, E, f, g, y G.De forma predeterminada, a menos que sean modificados por un prefijo de longitud de campo de size, los argumentos enteros se convierten al tipo de int, y los argumentos de punto flotante se convierten en double.En sistemas de 64 bits, int es un valor de 32 bits; por consiguiente, los enteros de 64 bits se truncados cuando se da formato para la salida a menos que un prefijo de size de ll o de I64 se utilice.Tipos de puntero especificados por el uso de p la longitud predeterminada para la plataforma.

[!NOTA]

C, S, y los caracteres de tipo de Z, y el comportamiento de c y s caracteres de tipo cuando se utilizan con las funciones de printf y de wprintf, son extensiones de Microsoft y no son compatibles con ANSI.Visual C++ no admite el carácter de tipo de F.

caracteres de campo del tipo printf

Carácter de tipo

Argumento

Formato de salida

c

Carácter

Cuando se utiliza con printf funciona, especifica un carácter de solo- byte; cuando se utiliza con wprintf funciona, especifica un carácter ancho.

C

Carácter

Cuando se utiliza con printf funciona, especifica un carácter ancho; cuando se utiliza con wprintf funciona, especifica un carácter de solo- byte.

d

Integer

Entero decimal con signo.

i

Integer

Entero decimal con signo.

o

Integer

Entero octal sin signo.

u

Integer

Entero decimal sin signo.

x

Integer

Entero hexadecimal sin signo; utiliza “abcdef”.

X

Integer

Entero hexadecimal sin signo; utiliza “ABCDEF”.

e

Flotante

El valor signed que tiene el formato [–]d.dddd e [sign]dd[d] donde es un dígito decimal d, dddd es uno o más dígitos decimales, dd[d] es dos o tres dígitos decimales dependiendo de formato de salida y tamaño de exponente, y el signo es + o –.

E

Flotante

Idéntico al formato salvo que E de e en lugar de e presenta el exponente.

f

Flotante

Valor con signo que tiene el formato [–]dddd.dddd, donde uno o más dígitos decimales dddd.El número de dígitos que hay delante del separador decimal depende de la magnitud del número y el número de dígitos que hay detrás del separador decimal depende de la precisión solicitada.

g

Flotante

Los valores firmado se muestran en f o formato de e, lo que sea más compacto para el valor y la precisión especificados.Se utiliza el formato de e sólo cuando el exponente de valor es menor que – 4 o mayor o igual que el argumento de precision.Se truncan los ceros finales, y el separador decimal sólo aparece si uno o más dígitos se siguen.

G

Flotante

Idéntico al formato de g, salvo que E, en lugar de e, presenta el exponente (en su caso).

a

Flotante

El valor de punto flotante de precisión doble hexadecimal con signo que tiene el formato [−]0xh.hhhhdd, donde los dígitos h.hhhh hexadecimales (con minúsculas) de la mantisa, y dd son uno o más dígitos en el exponente.La precisión especifica el número de dígitos después del punto.

A

Flotante

El valor de punto flotante de precisión doble hexadecimal con signo que tiene el formato [−]0Xh.hhhhdd, donde los dígitos h.hhhh hexadecimales (con letras mayúsculas) de la mantisa, y dd son uno o más dígitos en el exponente.La precisión especifica el número de dígitos después del punto.

n

Puntero a integer

Número de caracteres que se escribe correctamente hasta ahora a la secuencia o el búfer.Este valor se almacena en el entero cuya proporcionan dirección como argumento.Vea la Nota de seguridad más adelante en este artículo.

p

Tipo de puntero

Muestra el argumento como dirección de dígitos hexadecimales.

s

Cadena.

Cuando se utiliza con funciones de printf, especifica una cadena de caracteres de solo- byte o de multi- byte; cuando se utiliza con wprintf funciona, especifica una cadena de caracteres.Los caracteres se muestran hasta el primer carácter null o hasta precision se alcanza el valor.

S

Cadena.

Cuando se utiliza con printf funciona, especifica una cadena de caracteres; cuando se utiliza con funciones de wprintf, especifica una cadena de caracteres de solo- byte o de multi- byte.Los caracteres se muestran hasta el primer carácter null o hasta precision se alcanza el valor.

Z

ANSI_STRING o estructura de UNICODE_STRING

Cuando se pasa la dirección de ANSI_STRING o UNICODE_STRING estructura como argumento, muestra la cadena incluida en el búfer comunicado por al campo de Buffer de la estructura.Utilice un prefijo de modificador de la longitud de w para especificar UNICODE_STRING argumento- para el ejemplo, %wZ.El campo de Length de estructura se debe establecer en la longitud, en bytes, de la cadena.El campo de MaximumLength de estructura se debe establecer en la longitud, en bytes, del búfer.

Normalmente, el carácter de tipo de Z sólo se utiliza en controlador que la depuración funciona que utiliza una especificación de formato, como dbgPrint y kdPrint.

Si el argumento correspondiente a un especificador flotante de conversión es infinito, indefinido, o NAN, la tabla siguiente muestra el resultado.

Valor

Output

+ infinito

1.#INFaleatorio-dígitos

– infinito

– 1.#INFaleatorio-dígitos

No definido (igual que silenciosamente NaN)

digitrandom-dígitos. #IND

NAN

digitrandom-dígitos. #NAN

[!NOTA]

Si el campo de Buffer de argumento que corresponde a %Z, o el argumento que corresponde a %s o a %S, es un puntero NULL, “(null)” se mostrará.

[!NOTA]

En todos los formatos exponenciales, el número predeterminado de dígitos del exponente a mostrar es tres.Mediante la función de _set_output_format, puede establecer el número de dígitos mostrados a dos pero a expandir a tres si es solicitado por el tamaño del exponente.

Nota de seguridadNota sobre la seguridad

Dado que el formato de %n es inherentemente seguro, está deshabilitada de forma predeterminada.Si %n se encuentra en una cadena de formato, se invoca el controlador no válido de parámetro, tal y como se describe en Validación de parámetros.Para habilitar la compatibilidad con %n, vea _set_printf_count_output.

Vea también

Referencia

printf, _printf_l, wprintf, _wprintf_l

Sintaxis de especificación de formato: Funciones printf y wprintf

Directivas de marcador

especificación de ancho printf

Especificación de precisión

Especificación de tamaño

_set_output_format