RESPUESTA A LA PREGUNTA 995-C/C++/VISUAL C Primero,el uso de las teclas especiales. El teclado del PC retorna un código de rastreo al pulsar una tecla.Un servicio de interrupción convierte ese código de rastreo en un código ascci para ser leído con una función del tipo getch() o getch() EXCEPTO con las teclas especiales,como las de función o las de flechas.Para estas teclas,la interrupción de teclado retorna 2 bytes,el primero de los cuales es cero y el segundo el código de rastreo.Por lo tanto,una solución es usar los códigos de rastreo para detectar teclas especiales, mediante una función como bioskey del Turbo C y TurboC ++.Eso implica leer siempre con bioskey y administrar cada caso por separado. La otra,que al parecer nadie conoce y mucho más sencilla,es leer con getch() y especificar una acción cuando se lea un cero,ya que el siguiente carácter leído será el código de rastreo.Yo lo hago así: #include "key_code.h" #include "stdio.h" void menu(){ unsigned char tecla; do{ switch(tecla=getch()){ case TECLA_ESPECIAL:/*Si es tecla especial...*/ switch(getch()){ /*Leo el código de rastreo*/ case FLECHA_ARR: hacer_algo;break; case FLECHA_ABA:hacer_otra_cosa;break; /*ETC*/ } break; case ENTER:otra_cosa_mas;break; case 'w':me_canse;break; default:algo;break; } }while(tecla != ESCAPE); } La key_code.h es una biblioteca que me hice una vez y que no tengo aquí ahora. Consta de definiciones tales como #define ESCAPE 27 #define ENTER 13 #define FLECHA_ARR 72 #define TECLA_ESPECIAL 0 Etcétera. Los valores para cada tecla se pueden determinar con el siguiente programita: #include "stdio.h" void main(){ unsigned char tecla; do{ printf("\n Valor:%d.",tecla=getch()); }while(tecla!=27); } Las cadenas de carácteres se tratan en C con el conjunto de funciones de la string.h y se leen con funciones como gets o scanf.Si estás pensando en una función que considere la tecla ESC o Insert y Supr a la hora de ingresar un string,tendrás que hacerla tú mismo.No es difícil. Fabián Sierra C. magic_century@hotmail.com