Especificadores de formato en C para printf y scanf

InformáticaActualizado el 3,7 KB

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.

Ponte a prueba

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 dato short.
  • %u: para un unsigned int.
  • %d, %i: para enteros decimales.
  • %ld: para un long 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 %e o %f segú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:

  1. Especificadores de formato: con ellos indicamos el tipo de dato que vamos a cargar.
  2. Espacios en blanco.
  3. Otros caracteres.

Especificadores de Formato para scanf

  • %c: para un carácter.
  • %d o %i: para un entero decimal.
  • %e o %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 HTML

Preguntas 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

1. ¿Qué especificador de formato se usa en printf para un entero en formato hexadecimal?
2. ¿Qué hace el signo menos en el modificador %-5d?
3. ¿Qué devuelve printf si ocurre un error?
4. ¿Qué representa el primer número en el formato %8.2f?
5. ¿Qué debe acompañar a cada especificador de formato en scanf?
6. ¿Qué valor devuelve scanf cuando tiene éxito?

Preguntas generadas con IA a partir del documento: comprueba las respuestas con el texto.