La funcion PRINTF() se usa para la salida; en forma similar, la funcion SCANF() se usa para la entrada. En sentido tecnico, estas funciones no son parte del lenguaje C, sino del sistema C; residen en una biblioteca estandar y estan disponibles para usarlas donde quiera que haya un sistema C. Ambas funciones tienen una lista de parametros con dos partes:
string_de_control y lista_de_argumentos
La primera es un string y puede contener especificaciones de conversion
o formatos. Una especificacion de conversion se inicia con un caracter
% y termina con un caracter de conversion; por ejemplo, en el formato
%d la letra d es el caracter de conversion y permite imprimir el valor
de una expresion como un entero decimal. Para imprimir las letras ABC en
la pantalla, podria usarse la proposicion
printf("ABC");
Otra manera de hacer esto es mediante la proposicion
printf("%s", "ABC");
El formato %s hace que el argumento "ABC" se imprima en el formato de
un string de caracteres. Esto mismo puede realizarse tambien con la
proposicion
printf("%c%c%c", 'A', 'B', 'C');
Los apostrofos que encierran cada letra se emplean para designar
constantes de caracteres; de acuerdo con esto, `A` es la constante de
caracter que corresponde a la letra A mayuscula. El formato %c imprime
el valor de una expresion como un caracter. Por ejemplo
char c1, c2, c3;
c1 = 'A';
c2 = 'B';
c3 = 'C';
printf("%c%c%c", c1, c2, c3);
imprimira de nuevo las letras ABC en la pantalla.Ahora veamos los caracteres de conversion:
c caracter
d decimal
e número de punto flotante en notación científica
f número de punto flotante
g en el formato-e o el formato-f, el que sea más corto
s string
La funcion scanf() es analoga a la funcion printf(), pero se usa
para la entrada. Su primer argumento es un string de control con formatos
que corresponden a las diferentes formas en que pueden interpretarse los
caracteres en la entrada como valores para los diferentes tipos de
variables. La lista de argumentos esta formada por DIRECCIONES de
variables. El simbolo & representa al operador de direccion; por
ejemplo, la proposicion
scanf("%d", &x);
contiene el formato %d, el cual provoca que scanf() interprete los
caracteres de entrada como un entero decimal y que coloque el valor en la
direccion x. La funcion scanf() puede usarse para convertir cadenas de
digitos decimales en valores enteros y almacenarlos en el lugar
apropiado.Ahora veamos los caracteres de conversion:
c caracter
d decimal
f número de punto flotante (float)
lf numero de punto flotante (double)
s cadena de caracteres (string)
Veamos un ejemplo.
#include <stdio.h> /* Estándar Input/Output */
main() {
int x;
char c;
float y;
double z;
printf("\nIngrese un caracter : ");
scanf("%c", &c);
printf("\nIngrese un int : ");
scanf("%d", &x);
printf("\nIngrese un float : ");
scanf("%f", &y);
printf("\nIngrese un double : ");
scanf("%lf", &z);
printf("\n\nLos datos que ud. ingreso fueron :\n");
printf("%c %d %e %e\n\n", c, x, y, z);
}