Leer entrada del teclado

Gabriel
18 de Junio del 2003
Queria saber que función puedo utilizar para saber cual fue la ultima tecla presionada. El caso en cuestion es que estando en un bucle while leyendo datos del puerto serie quiero saber si en algun momento se presiona por ejemplo la tecla escape asi puedo terminar el bucle.

Martin
18 de Junio del 2003
getch() te para la ejecucion del programa en espera de una tecla pero tenes una funcion auxiliar para aberiguar si tenes o no teclas en el buffer: es kbhit() (ojo no esta en todos los compiladores, pero si esta getch() seguro esta knhit())
kbhit() retorna un 1 o un 0 si esta o no precionada una tecla asi que podes hacer:

int INKEY(void) {
if (kbhit()) return(getch());
return (0);
}

do {
...
} while (INKEY == 27);

Lo hice en una funcion para hacerlo mas portable a todos los programas que vallas haciendo pero tambien podes hacer:
if ((kbhit()) && (getch() == 27)) break;
Ha, antes que me olvide, 27 es el ASCII de ESC...