La función getchar() devuelve el carácter que se halle en la entrada estándar. Esta función tiene dos particularidades. 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 su versió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 <stdio.h> main() { int c; c = getchar(); /* Nótese que getchar() no devuelve nada hasta que se presiona ENTER */ putchar(c); } |
Aquí se almacena en el entero c el carácter pulsado en el teclado. Posteriormente se muestra con putchar.
Y cual es la segunda particularidad de getchar, creo que no la mencionaste
ResponderEliminar