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

 

Para obtener la documentación más reciente de Visual Studio 2017 RC, consulte Documentación de Visual Studio 2017 RC.

Describe la sintaxis de los argumentos de cadena de formato de printf, wprintf y funciones relacionadas. Existen versiones más seguras de estas funciones; para obtener más información, vea Características de seguridad de CRT. Para obtener información sobre cada una de las funciones individuales, vea la documentación correspondiente. Para obtener una lista de estas funciones, vea E/S de secuencia.

Una especificación de formato, que consta de campos opcionales y obligatorios, tiene el formato siguiente:

%[flags] [width] [.precision] [{h | l | ll | w | I | I32 | I64}] type

Cada campo de la especificación de formato es un carácter o un número que indica una opción de formato o un especificador de conversión. El carácter obligatorio de type especifica el tipo de conversión que se aplicará a un argumento. Los campos opcionales flags, width y precision controlan otras características del formato. Una especificación de formato básica solo contiene el signo de porcentaje y un carácter de type, por ejemplo %s, que especifica una conversión de cadena. En las versiones seguras de las funciones, si un signo de porcentaje va seguido de un carácter que no tiene ningún significado como campo de formato, se invoca el controlador de parámetros no válidos. Para obtener más información, vea Validación de parámetros. En las versiones no seguras, el carácter se copia sin cambios en la salida. Para imprimir un carácter de signo de porcentaje, use %%.

Los campos de la especificación de formato controlan los siguientes aspectos de la conversión de argumentos y formato:

type
Carácter especificador de conversión necesario que determina si el parámetro argument asociado se interpreta como un carácter, una cadena, un entero o número de punto flotante. Para obtener más información, vea printf (Caracteres de campo de tipo).

flags
Carácter o caracteres opcionales que controlan la justificación del resultado, y el resultado de signos, espacios en blanco, ceros iniciales, separadores decimales, y prefijos octales y hexadecimales. Para obtener más información, vea Directivas de marca. En una especificación de formato puede haber varias marcas, que pueden aparecer en cualquier orden.

width
Número decimal opcional que especifica el número de caracteres mínimo que se genera. Para obtener más información, vea printf (Especificación de ancho).

precision
Número decimal opcional que especifica el número máximo de caracteres que se imprime para las cadenas, el número de dígitos significativos o número de dígitos detrás del carácter de separador decimal para valores de punto flotante, o el número mínimo de dígitos que se imprimen para los valores enteros. Para obtener más información, vea la sección “Efecto de los valores de precisión en el tipo” en Especificación de precisión.

h | l | ll | w | I | I32 | I64
Prefijos opcionales de type que especifican el tamaño del argumento correspondiente. Para obtener más información, vea “Prefijos de tamaño” en Especificación de tamaño.

System_CAPS_ICON_important.jpg Importante

Asegúrese de que las cadenas de especificación de formato no son definidas por el usuario. Por ejemplo, imagine un programa que solicita al usuario que escriba un nombre y almacena la entrada en una variable de cadena denominada name. Para imprimir name, no haga esto:

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

En lugar de ello, haga esto:

printf( "%s", name );

printf, _printf_l, wprintf, _wprintf_l
printf_s, _printf_s_l, wprintf_s, _wprintf_s_l
printf_p (Parámetros de posición)
Directivas de marca
printf (Especificación de ancho)
Especificación de precisión
Especificación de tamaño
printf (Caracteres de campo de tipo)

Mostrar: