Programación en C/Salida por pantalla: printf()

[Volver al índice general] [Anterior: Instrucciones de control] [Siguiente: Ejemplos]

Como hemos visto hasta ahora en los ejemplos, hay una función que utilizamos para sacar por pantalla textos arbitrarios o el resultado de alguna operación: la función printf().

Si miramos (en la documentación) su definición, no nos aclarará demasiado:

int printf (const char *TEMPLATE, ...)

...claro que por algo tiene una sección completa de la documentación para ella sola.

Veamosla poco a poco. Se trata de una función de la biblioteca estándar, lo que quiere decir que para utilizarla tenemos que incluir previamente su definición. La encontraremos en <stdio.h>.

Lo primero que vemos en la definición es que es una función de tipo int, lo que quiere decir que devuelve un entero. Ese entero es el número de caracteres impresos en la pantalla, o un número negativo en caso de que se produzca algún error.

Lo siguiente a notar es su primer argumento: const char *TEMPLATE. Se trata de una cadena de caracteres (char *) que no será modificada por la función (const), con lo que puede ser una constante de cadena o una variable que contenga una cadena, pero siempre debe acabar con el carácter nulo \0.

Y luego vienen esos extraños puntos suspensivos. Esa elipsis nos indica que como argumentos adicionales de printf() podemos poner una serie ilimitada de otros argumentos, que se supone que la función sabrá qué hacer con ellos. Y eso es justamente lo que hace tan fabulosa y útil a printf().

El uso más simple de printf() es imprimir una cadena de texto simple y corriente. Como ya vimos:

printf("Hola Mundo\n"); /*imprime la cadena*/

Y vimos que printf() también puede, con un argumento extra y una sintaxis especial, imprimir un número entero que hayamos almacenado en una variable:

int resultado;

resultado=5+2;
printf("Resultado de la suma: %i\n",resultado);

Aquí el punto de inserción es la secuencia %i. printf() siempre trata las secuencias que comiencen por % como secuencias de control que le dicen que debe imprimir algo que le proporcionamos en los otros argumentos. Así, podemos imprimir varios enteros distintos en los sitios que queramos de la cadena, insertando varias de estas secuencias %i:

int numero;

numero=3;
printf("El doble de %i es %i y su cuadrado es %i\n",numero,numero*2,numero*numero);

[Volver al índice general] [Anterior: Instrucciones de control] [Siguiente: Ejemplos] [Arriba]