La Web del Programador: Comunidad de Programadores
 
    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.