Especificadores de Formato en C: Domina printf y scanf
Clasificado en Informática
Escrito el en
español con un tamaño de 3,7 KB
La Función printf
Esta función se utiliza para escribir datos con formato en la salida estándar (normalmente la pantalla).
Especificadores de Formato para printf
Los especificadores de formato indican el tipo de dato que se va a imprimir.
%h: para un tipo de datoshort.%u: para ununsigned int.%d,%i: para enteros decimales.%ld: para unlong int.%f: para un número real en notación decimal.%c: para un carácter.%s: para una cadena de caracteres.%o: para un entero en formato octal.%x: para un entero en formato hexadecimal.%e: para un número real con notación científica.%g: funciona como%eo%fsegún el valor.%p: para un puntero (dirección de memoria).%%: para escribir el símbolo de porcentaje (%).
Valor de Retorno
Retorna el número de caracteres que se han escrito en pantalla si ha habido éxito. Si ocurre un error, retorna la constante EOF.
Modificadores de Formato
Los formatos de impresión disponen de modificadores que permiten especificar la longitud del campo, el número de cifras decimales o si el texto se justifica a la izquierda o a la derecha.
Ejemplos de modificadores
La sintaxis general es %[modificador]letra.
%5d: Especifica que el campo de impresión tendrá un ancho de 5 caracteres. Si el número es más corto, se rellenará con espacios a la izquierda.%-5d: Hace lo mismo que el anterior, pero el signo menos (-) justifica el contenido a la izquierda.
Para números reales
Se utiliza el formato %N.Mletra.
Ejemplo: %8.2f
- El primer número (
8) marca el tamaño total del campo. - El segundo número (
2) indica la cantidad de cifras decimales que se visualizarán.
Código de ejemplo:
printf("%8.2f", 123.456);
La Función scanf
La declaración de la función es: int scanf(const char* cadena, ...);
Se utiliza para leer desde la entrada estándar (generalmente el teclado) y cargar datos en variables según un formato específico. La cadena de formato está formada por tres tipos de caracteres:
- Especificadores de formato: con ellos indicamos el tipo de dato que vamos a cargar.
- Espacios en blanco.
- Otros caracteres.
Especificadores de Formato para scanf
%c: para un carácter.%do%i: para un entero decimal.%eo%f: para un número real.%h: para un entero corto (short).%x: para un entero hexadecimal.%s: para una cadena de caracteres.%p: para un puntero o dirección de memoria.
Uso de Parámetros
Por cada especificador de formato en la cadena, debe haber un argumento correspondiente que sea la dirección de memoria (un puntero) de una variable del tipo de dato adecuado donde se almacenará el valor leído.
Valor de Retorno
El valor de retorno de la función es el número de campos que se han procesado y asignado con éxito.