entrada y salida de caracteres
Introducción; funciones de biblioteca para E/S
putchar y getchar
puts y gets
printf
scanf
Posicionado del cursor y borrado de pantalla
Introducción: funciones de biblioteca para E/S
En la biblioteca estándar de C se definen las dos principales vías de comunicación de un programa:
la entrada estándar (stdin), y
la salida estándar (stdout).Generalmente están ambas asociadas a nuestro terminal, de manera que cuando se imprimen datos en la salida estándar los caracteres aparecen en el terminal, y cuando leemos caracteres de la entrada estándar los leemos del teclado del terminal. La entrada y salida estándar trabajan con caracteres (en modo carácter), con datos o números binarios. Es decir, todos los datos que enviemos a la salida estándardeben ser cadenas de caracteres. Por ello para imprimir cualquier dato en la salida estándar primero deberemos convertirlo en texto, es decir, en cadenas de caracteres. Sin embargo esto lo haremos mediante las funciones de biblioteca, que se encargan de realizar esta tarea eficientemente:
putchar y getchar
puts y gets
printf
scanf
gotoxy
clrscr
putchar y getchar
Comenzaremos con lasdos funciones principales de salida y entrada de caracteres: putchar y getchar.
La función putchar escribe un único carácter en la salida estándar. Su uso en sencillo y generalmente está implementada como una macro en la cabecera de la biblioteca estándar. Por ejemplo:
#include
main()
{
putchar('H');
putchar('o');
putchar('l');
putchar('a');
putchar(32);
putchar('m');putchar('u');
putchar('n');
putchar('d');
putchar('o');
putchar('\n');
}
El resultado es:
Hola mundo
En el código anterior putchar(32); muestra el espacio entre ambas palabras (32 es el código ASCII del carácter espacio ' ') yputchar('\n'); imprime un salto de línea tras el texto.
La función getchar devuelve el carácter que se halle en la entrada estándar. Esta función tiene dosparticularidades. La primera es que aunque se utiliza para obtener caracteres no devuelve un carácter, sino un entero. Esto se hace así ya que con un entero podemos representar tanto el conjunto de caracteres que cabe en el tipo carácter (normalmente el conjunto ASCII de caracteres) como el carácter EOF de fin de fichero. En UNIX es habitual representar los caracteres usando el código ASCII, tanto en suversión de 7 bits como en su versión ampliada a 8 bits. Estos caracteres se suelen representar como un entero que va del 0 al 127 o 256. El carácter EOF entonces es representado con un -1. Además esto también lo aplicaremos cuando leamos los ficheros binarios byte a byte. Un ejemplo:
#include
main()
{
int c;
c = getchar(); /* Nótese que getchar() no devuelve nada
hasta que sepresiona ENTER */
putchar(c);
}
Aquí se almacena en el entero c el carácter pulsado en el teclado. Posteriormente se muestra con putchar.
puts y gets
La función puts simplemente imprime una cadena de caracteres en la salida estándar (y produce un salto de línea). Le debemos proporcionar la dirección donde encontrar la cadena de caracteres. El código:
#include
main()
{puts("Bienvenido a la programación");
puts(" en lenguaje C");
}
produce el resultado:
Bienvenido a la programación
en lenguaje C
La función gets simplemente toma una cadena de caracteres de la entrada estándar (cuya introducción es preciso terminar con un ENTER) y la almacena en una variable string. Supongamos este código:
#include
main()
{
char cadena[50];
puts("Escriba un texto:");gets(cadena);
puts("El texto escrito es:");
puts(cadena);
}
La declaración char cadena[50]; crea una variable llamada cadena que puede almacenar hasta 50 caracteres. Este código produce, cuando escribimos con el teclado el texto Bienvenido a la programación en lenguaje C, el resultado:
Escriba un texto:
Bienvenido a la programación en lenguaje C
El texto escrito es:
Bienvenido a la...
Regístrate para leer el documento completo.