CFRD simplified sequence for Mazar Hydroelectric Project
2.10 entrada y salida
1. CENTRO TECNOLÓGICO DE AVANZADA
AREA DE MECATRÓNICA
Código: M06 MICROCONTROLADORES I
Laboratorio: D-19
Duración: 2 Hs INTRODUCCIÓN AL LENGUAJE C
2.10. Entrada y Salida
Objetivos
1. Conocer las funciones para entrada/salida de datos en C.
Los programas interactúan con el exterior, a través de datos de entrada o datos de
salida. La biblioteca C proporciona facilidades para entrada y salida, para lo que todo
programa deberá tener el archivo de cabecera stdio.h. En C la entrada y salida se lee
y escribe de los dispositivos estándar de entrada y salida. La salida, normalmente, es a
pantalla del ordenador, la entrada se capta del teclado.
2.10.1. Salida
La salida de datos de un programa se puede dirigir a diversos dispositivos, pantalla,
impresora, archivos. La salida que se trata a continuación va a ser a pantalla, además será
formateada. La función printf() visualiza en la pantalla datos del programa, transforma
los datos, que están en representación binaria, a ASCII según los códigos transmitidos.
Así, por ejemplo,
suma = 0;
suma = suma+10;
printf("%s %d","Suma=",suma);
visualiza
Suma=10
El número de argumentos de printf es indefinido, por lo que se pueden trasmitir
cuantos datos se desee. Así, suponiendo que
i=5 j=12 c=’A’ n=40.791512
la sentencia
printf("%d %d %c %f ", i, j, c, n);
visualizará en pantalla
5 12 A 40.791512
La forma general que tiene la función printf()
printf(cadena-de-control, dato1, dato2,...);
Pedro Ramírez pedroramirez22@gmail.com 1
2. CENTRO TECNOLÓGICO DE AVANZADA
AREA DE MECATRÓNICA
Código: M06 MICROCONTROLADORES I
Laboratorio: D-19
Duración: 2 Hs INTRODUCCIÓN AL LENGUAJE C
cadena-de-control contiene los tipos de los datos y forma de mostrarlos.
dato1, dato2... variables, constantes, datos de salida.
printf() convierte, da forma de salida a los datos y los escribe en pantalla. La
cadena de control contiene códigos de formato que se asocian uno a uno con los datos.
Cada código comienza con el carácter %, a continuación puede especificarse el ancho
mínimo del dato y termina con el carácter de conversión.
Los códigos de formato más utilizados y su significado:
%d El dato se convierte a entero decimal.
%u El dato entero se convierte a entero sin signo.
%c El dato se considera de tipo carácter.
%e El dato se considera de tipo float. Se convierte a notación científica.
%f El dato se considera de tipo float.
%g
El dato se considera de tipo float. Se convierte según el código %e o %f
dependiendo de cual sea la representación más corta.
%s El dato ha de ser una cadena de caracteres.
%lf El dato se considera de tipo double.
2.10.2. Entrada
La entrada de datos a un programa puede tener diversas fuentes, teclado, archivos
en disco. La entrada que consideramos ahora es a través del teclado. La función mas
utilizada, por su versatilidad, para entrada formateada es scanf().
El archivo de cabecera stdio.h de la biblioteca C proporciona la definición (el pro-
totipo) de scanf(), así como de otras funciones de entrada o de salida.
La forma general que tiene la función scanf()
scanf(cadena_de_control, varl, var2, var3, ...);
cadena_de_control contiene los tipos de los datos y si se desea su anchura.
var1, var2... variables del tipo de los códigos de control.
Los códigos de formato más comunes son los ya indicados en la salida. Se pueden
añadir, como sufijo del código, ciertos modificadores como l o L.
Pedro Ramírez pedroramirez22@gmail.com 2
3. CENTRO TECNOLÓGICO DE AVANZADA
AREA DE MECATRÓNICA
Código: M06 MICROCONTROLADORES I
Laboratorio: D-19
Duración: 2 Hs INTRODUCCIÓN AL LENGUAJE C
El significado es «largo», aplicado a float ( %lf) indica tipo double, aplicado a int
( %ld) indica entero largo.
int n; double x;
scanf("%d %lf",&n,&x);
La entrada tiene que ser de la forma
134 -1.4E-4
En este caso la función scanf() devuelve n=134 x=1.4E-4 (en doble precisión). Los
argumentos var1, var2, ... de la función scanf() se pasan por dirección o referencia
pues van a ser modificados por la función para devolver los datos. Por ello necesitan el
operador de dirección, el prefijo &. Un error frecuente se produce al escribir, por ejemplo,
double x;
scanf("%lf",x);
en vez de
scanf("%lf",&x);
La función scanf() termina cuando ha captado tantos datos como códigos de control
se han especificado, o cuando un dato no coincide con el código de control especificado.
Pedro Ramírez pedroramirez22@gmail.com 3