Pregunta: | 4106 - COMO SALIR DE UN SCANF PRESIONANDO UNA TECLA (POR EJ ESC) |
Autor: | Horacio Filippi |
Quisiera saber como hacer para salir de un scanf en cualquier momento presionando la tecla ESC en Borland C (DOS). Desde ya muchas gracias. |
Respuesta: | Armando Nava |
Es un poquito complicado pero se puede hacer, lo que yo hago es crear una funcion que lea un caracter a la vez por medio de char t, datos[80]; t= inport(0x60); //Lee una tecla valor numerico //para ESC t=1 Asi entonces int i=0; while( ((t=inport(0x60))!=1) ){ //Por ejemplo leer una cadena datos[i]=getch(); i++; } Lo malo de este metodo (inport(0x60))es que lees el valor todas las teclas, y no ejecutas su funcion. Tengo un programa ya hecho, si te interesa escribeme a [email protected] Hasta luego |
Respuesta: | Ricarditopicaron |
¿Por qué no te haces una función scanf() para vos con getch() -> conio.h? getch() no espera al enter, una vez que la tecla es apretada vuelve la atención de la computadora a tu programa. Para las teclas de función recivís dos carácteres el 0 y haciendo otro getch() el caracter ´tecla función´ ej: int getcadena(char cadena[]){ int cont, halloesc, halloenter; for(cont=0; ; ++cont){ if(0==(cadena[cont]=getch())){ if(´ch enter´==(cadena[cont]=getch())) return ++cont; else if (´ch esc´==cadena[cont]) return -1; --cont; } } hacer un programa y averiguar ´ch enter´ y ´ch esc´ |
Respuesta: | Manuel Ramirez |
No estoy seguro, pero una opción de cancelar o salirse de la corrida de un programa antes de su total ejecución es presionando las teclas Ctrl+Break o un teclado en español Ctrl+Pausa. Espero que esta sea la solucion a tu requerimiento de lo contrario disculpame que de todas maneras voy a investigar para asegurarme. |