Endlosschleife mit Esc abbrechen (C)

evolem

Grünschnabel
Hallo,

würde gern mehr über C erfahren. Hab ein Programm geschrieben, was eigentlich kein Sinn macht. Für den Anfang möchte ich kleine Programm schreiben.

Code:
#include <stdlib.h>
#include <stdio.h>

void main(void)
{
         int a, ii;
         ii=0;
         for( ; ; )
         {
              a= 1 + ii;
              printf ("\n a%d= %d ",ii, a);
              ii++;
         }
}

Jetzt möchte ich per Esc sofort raus. Ich habs schon mit "If(getch()== '\33') exit(0);" versucht, hier muss ich dann jedes mal eine Taste drücken um etwas ausgeben zu lassen. Nur genau dies will ich nicht, möchte sofort aus der Schleife raus!
 
getch hat den "Nachteil", dass es auf eine gedrückte Taste wartet. Du kannst vorher mit kbhit() prüfen, ob eine Taste gedrückt worden ist:

Code:
int a, ii;
         ii=0;
         for( ; ; )
         {
              a= 1 + ii;
              printf ("\n a%d= %d ",ii, a);
              ii++;
              if ( ( kbhit() )
              &&   ( getch() == 27 ) )
              {
                break;
              }
         }
 
Zurück