Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Existen, básicamente, seis funciones de entrada y salida desde consola, tres de entrada y
tres de salida.
1.-La funcióngetchar()
Lee un carácter desde el teclado. Se define como:
int getchar(void);
Dicha función lee caracteres, de uno en uno, desde el teclado, esperando, para
leer los caracteres, la pulsación de un retorno de carro. Es por ello que es posible
escribir varios caracteres antes de que ninguno de ellos sea leído. La función
getchar() hace eco en pantalla del carácter leído. En caso de error devuelve EOF.
#include <stdio.h>
int main(void)
{
char ch;
do
{
ch=getchar();
putchar(ch);
}
while (ch!='e' && ch!='E');
return 0;
}
Este programa lee todas las teclas pulsadas en el teclado, y las coloca en
pantalla, hasta leer una 'e' o una 'E'. Obsérvese que solo lee las teclas después de pulsar un
retorno de carro.
La función gets() lee un string desde el teclado hasta que se pulsa un retorno de carro. El string
es almacenado en la variable s, y el retorno de carro leído desde el teclado es, automáticamente,
reemplazado por un carácter de final de string ('\0').
Devuelve un puntero a la variable s si sucede de forma correcta, y NULL en caso contrario. La
función gets() permite corregir errores de teclado usando la tecla de retroceso antes de
pulsar el retorno de carro.
#include <stdio.h>
#define TAM 100
int main(void)
{
char cadena[TAM];
puts("Introduce una cadena:");
gets(cadena);
return 0;
}
El string formato es la cadena de control que indica los datos a leer. Dicha
cadena de control consta de tres clases de caracteres:
· Especificadores de formato.
· Caracteres de espacio en blanco.
· Caracteres que no sean espacios en blanco.
Los especificadores de formato están precedidos por el signo %, y dicen a la
función que tipo de datos van a ser leídos a continuación. Los especificadores de formato validos
son:
Además, es posible utilizar los modificadores h (short), l (long) y L.
El modificador h se puede aplicar a los tipo d, i, o, u y x, e indica que el tipo de dato es short int
o unsigned short int según el caso.
El modificador l se puede aplicar a los casos anteriores, indicando que el tipo de dato es long
int o unsigned long int, pero, además, se puede aplicar a los tipos e, f y g, indicando, en tal caso,
que el tipo de dato es double.
Un espacio en blanco es, además del carácter espacio, un tabulador o un salto de línea. Un
carácter que no sea espacio en blanco da lugar a que scanf() lea y elimine el carácter asociado.
Por ejemplo, %d:%d da lugar a que scanf() lea primero un int, después lea, y descarte, los dos
puntos, y luego lea otro int.
Todas las variables utilizadas para recibir valores (si son necesarias), deben ser pasadas por
"referencia", o sea, por sus direcciones. Esto supone que los argumentos deben ser punteros
a las variables.
La presencia del signo * después del signo % y antes del código del formato
produce que scanf() lea, pero no asigne el valor leído a ninguna variable. Por ejemplo:
int x,y;
scanf("%d%*c%d",&x,&y);
La función scanf() devuelve un número igual al de campos que han sido asignados
correctamente, este número no incluye los campos que fueron leídos, pero no asignados,
utilizando el modificador * para eliminar la asignación. En caso de error devuelve EOF.
6.-La función printf()
Se usa para escribir cualquier tipo de dato a la pantalla. Su formato es:
El segundo tipo contiene las ordenes de formato que describen la forma en que se muestran los
argumentos. Las ordenes de formato están precedidas por el signo % y le sigue el código de
formato. Estas ordenes de formato son:
#include <stdio.h>
int main(void)
{
int a,b;
printf("\nIntroduce el valor de a: ");
scanf("%d",&a);
printf("\nIntroduce el valor de b: ");
scanf("%d",&b);
if (b!=0)
printf("\nEl valor de %d dividido %d es: %f\n",
a,b,(float)a/b);
else
printf("\nError, b vale 0\n");
return 0;
}