Salir de un bucle en cualquier momento

Estoy tratando de salir de un bucle en cualquier momento que quiero presionando cualquier tecla. He intentado el código de abajo, pero no se puede hacer. Necesito tu ayuda. Gracias de antemano. Estoy usando un C-Free 5.0.

#include  #include  #include  int main(void) { int b=0, i; int seconds; printf("\nEnter number of seconds : "); scanf("%d", &seconds); while (b==0) { for(i=1;i<=seconds;i++) { time_t end = time(0) + 1; while(time(0) < end) ; seconds -= 1; printf("Number of seconds left : %d\n", seconds); b=kbhit(); } if(seconds == 0) { exit(0); } } printf("Number of remaining seconds left : %d\n", seconds); } 

Usted está “ocupado esperando” en el bucle más interno. Puede que esa no sea la mejor solución, pero si eso es lo que quiere hacer, debe agregar una prueba en ese bucle para verificar si se presionó una tecla.

Para salir de un bucle usa una función en c ++ llamada khbit. Se convierte en 1 cuando se presiona cualquier tecla y para vaciarla nuevamente, asigne la tecla presionada para borrar el búfer usando getch ()

 #include  #include  using namespace std; int main() { while(1) { if(kbhit()) // khbit will become 1 on key entry. { break; // will break the loop } // Try to use some delay like sleep(100); // sleeps for 10th of second to avoid stress on CPU } // If you want to use khbit again then you must clear it by char dump = getch(); // This way you can also take a decision that which key was pressed like // if(dump == 'A') //{ cout<<"A was pressed etc";} }