3.5) La función printf.
Mediante la función printf podemos escribir datos en el dispositivo de salida estandar (pantalla). Complementariamente a scanf, printf puede escribir cualquier combinación de valores numéricos, caracteres sueltos y cadenas de caracteres. La función printf transporta datos desde la memoria a la pantalla, a diferencia de scanf, que envía datos desde el teclado para almacenarlos en la memoria. La función printf devuelve el número de caracteres escritos. Si devuelve un valor negativo indica que se ha producido un error.En general, una refencia a la función printf se escribe:
printf (cadena de control, lista de argumentos);
en donde cadena de control hace referencia a una cadena de caracteres que contiene información sobre el formato de la salida y la lista de argumentos son argumentos que representan los datos de salida.A diferencia de la función scanf, los argumentos en la función printf no representan direcciones de memoria y por tanto no son precedidos por &. Además, dentro de los argumentos se pueden incluir referencias a funciones.
En la cadena de control se incluyen grupos individuales de caracteres cada uno de los cuales deben comenzar por %. Normalmente, un grupo de caracteres estará formado por el signo de porcentaje seguido de un carácter de conversión que indica el tipo del dato correspondiente (debe haber igual número de caracteres de conversión como de argumentos).
Pueden incluirse varios grupos de caracteres seguidos o separados por otros caracteres, caracteres éstos que serán enviados directamente a la pantalla, donde serán visualizados (es muy frecuente el uso de caracteres en blanco para separar grupos de caracteres).
Además, los caracteres de conversión pueden incluir los siguientes modificadores:
Veamos en una tabla los carácteres de conversión más frecuentes:Longitud del campo: Un número entero entre % y el carácter de conversión. Número de dígitos decimales: Un número entero, un punto y un segundo número entre % y el carácter de conversión indica el número de dígitos decimales, y la long. máx. para enteros o cadenas. Justificación a la izquierda: Signo - después del signo %. (recordar que delante de estos carácteres va siempre %)
Veamos un ejemplo de escritura con la función printf. En él, la función printf con el carácter de control %s, permite mostrar por pantalla el contenido de un vector de caracteres (una o varias palabras) hasta encontrar el carácter de fin de cadena '\0'.
Carácter Significado c Escribe un carácter simple d Escribe un entero decimal con signo i Escribe un entero decimal, octal o hexadecimal con signo e Escribe un número en punto flotante con exponente f Escribe un número en punto flotante sin exponente g Usa %e o %f, el más corto en longitud o Escribe un entero octal, sin el cero inicial s Escribe una cadena de caracteres u Escribe un entero decimal sin signo x Escribe un entero hexadecimal sin el prefijo 0x.
NOTA: Algunos caracteres tienen significado distinto que en la función scanf.
Otro ejemplo de cómo se utiliza la función printf. Los dos primeros argumentos de ésta son variables simples, el tercero es una expresión aritmética, y el último es una referencia a una función.
Veamos cómo visualizar distintos tipos
de datos con printf. Supondremos que a las variables letras,
entero y coste, se les ha asignado los valores velocidad, 12345
y 0.05 (representados por la etiqueta del botón a pulsar).
Otra versión de este ejemplo, sin incluir espacios en blanco entre los argumentos de printf: