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

Describe la sintaxis de los argumentos de la cadena de formato a printf, a wprintf, y funciones relacionadas.Versiones más seguras de estas funciones están disponibles; para obtener más información, vea Características de seguridad en CRT.Para obtener información sobre las funciones individuales, vea la documentación de esas funciones concretas.Para obtener una lista de estas funciones, vea E/S de la secuencia.

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

%[marcadores] [ancho] [.precisión] [{h | l | ll | w | I | I32 | I64}] tipo

Cada campo de la especificación de formato es un carácter o un número que significa un especificador determinado de la opción de formato o de conversión.El carácter necesario de type especifica el tipo de conversión a un argumento.flags opcional, width, y los aspectos de formato adicionales del control de campos de precision.Una especificación de formato básico sólo contiene el signo de porcentaje y type carácter- para el ejemplo, %s, que especifica una conversión de cadena.Si un signo de porcentaje va seguido de un carácter que no tienen ningún significado como un campo de formato, el carácter se copia en la salida sin cambios.Para imprimir un carácter de signo, utilice %%.

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

  • type
    Carácter necesario de especificador de conversión que determina si 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 caracteres de campo del tipo printf.

  • flags
    Carácter o caracteres opcionales que controlan la justificación del resultado y la salida de signos, de espacios en blanco, de ceros iniciales, de separadores decimales, y de prefijos octales y hexadecimales.Para obtener más información, vea Directivas de marcador.Más de un indicador puede aparecer en una especificación de formato, y marcadores 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 especificación de ancho printf.

  • 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 el número de dígitos después del carácter de separador decimal para los valores de punto flotante, o el número mínimo de dígitos que se imprimen por valores enteros.Para obtener más información, vea “valores Modificaciones de Cómo Precision tipo” en Especificación de precisión.

  • h | l | ll | w | I | I32 | I64
    Prefijos opcionales a type que especifica 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 la especificación de formato no son definidas por el usuario.Por ejemplo, considere un programa que solicita al usuario escribir un nombre y almacena la entrada en una variable de cadena denominado name.Para imprimir name, no haga esto:

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

En su lugar, haga lo siguiente:

printf( "%s", name );

Vea también

Referencia

printf, _printf_l, wprintf, _wprintf_l

printf_s, _printf_s_l, wprintf_s, _wprintf_s_l

parámetros posicionales De printf_p

Directivas de marcador

especificación de ancho printf

Especificación de precisión

Especificación de tamaño

caracteres de campo del tipo printf