# Endlosschleife mit Esc abbrechen (C)



## evolem (21. Mai 2007)

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. 


```
#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!


----------



## Endurion (21. Mai 2007)

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:


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


----------



## evolem (21. Mai 2007)

Mensch, na klar. Warum hab ich nicht dran gedacht? Logisch. Besten Dank!


----------

