Especificadores de formato en C para printf y scanf
Resumen
El documento explica las funciones printf y scanf del lenguaje C para escribir y leer datos con formato. Describe los especificadores de formato de cada función, los modificadores de ancho y decimales, y los valores de retorno. Un estudiante aprenderá a usar correctamente estas funciones de entrada y salida.
Puntos clave
- printf escribe datos con formato en la salida estándar y devuelve el número de caracteres escritos o EOF si hay error.
- Los especificadores principales de printf incluyen %d, %f, %c, %s, %x, %o, %e, %g, %p y %%.
- La sintaxis de modificadores es %[modificador]letra; por ejemplo, %5d ocupa 5 caracteres y %-5d justifica a la izquierda.
- Para números reales se usa %N.Mf, donde N es el ancho total y M el número de cifras decimales.
- scanf lee desde la entrada estándar y su declaración es int scanf(const char* cadena, ...).
- Cada especificador de scanf necesita un argumento que sea la dirección de una variable del tipo adecuado.
- scanf devuelve el número de campos procesados y asignados con éxito.
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.
Descargar
PDF Word HTMLPreguntas frecuentes
¿Qué devuelve la función printf?
Devuelve el número de caracteres escritos en pantalla si la operación tiene éxito. Si ocurre un error, devuelve la constante EOF.
¿Qué significa el formato %8.2f?
El primer número, 8, indica el tamaño total del campo. El segundo número, 2, indica cuántas cifras decimales se muestran.
¿Qué argumentos necesita scanf?
Por cada especificador de formato debe haber un argumento que sea la dirección de memoria de una variable del tipo de dato adecuado.
Ponte a prueba
Tarjetas de repaso
Pulsa una tarjeta para ver la respuesta.
Test
Preguntas generadas con IA a partir del documento: comprueba las respuestas con el texto.