Compartir a través de


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

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. Si un signo de porcentaje va seguido por un carácter que no tienen ningún significado como campo de formato, el carácter se copia en el resultado sin cambios. 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 “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.

Nota de seguridadNota sobre la seguridad

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 );

Vea también

Referencia

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)