schleife bis.... keypressed?
-
hallo,
ich habe zwei verschachtelte schleifen, die so lange laufen sollen, bis ein abbruch gewünscht ist.for(int b =1;b<100;b++){ for(int a =1;a<100;a++){ getkey= abbruch? mache was aufwendiges... } getkey= abbruch? }wie kann ich an dieser stelle abbrechen?
kann ich die erste for schleife eigentlich irgendwie in eine endlosschleife umwandeln so dass es vernünftiger C++ Code ist?
-
1. Schleifen in ein Thread auslagern (boost.thread)
2. per cin warten, bis etwas (bestimmtes) eingegeben wird
3. Thread mitteilen, dass er sich beenden soll//typo
-
Endlosschleife:
1:
for(;;){...}2:
while(1){...}Ansonsten. Was brauchst du als Abbruchbedingung?
-
Wenn es nicht ganz so portabel sein muss und ein wenig Microsoft spezifisch sein darf, dann kannst du auch das _kbhit() Ding benutzen.
Wenn allerdings dein 'mache was aufwendiges' zu aufwendig ist, kommst du um einen Thread nicht herum.void aufwendig() { return; // Hier nicht ganz so aufwendig. } int main() { bool Run = true; int c = 0; while (Run) { while(!_kbhit() ) { printf("Running \r"); aufwendig(); } if ( (c = _getch()) == 'q' ) { while( c != 'y' && c != 'n' ) { printf("Realy quit? [y/n]\r"); c = _getch(); } if ( c == 'y' ) Run = false; } } puts("\nAdios!"); return 0; }
-
hey,
welche includ dateien benöigt man um diese funktion durchzuführen?_getch() ist unbekannt...
aber vielleicht ist eine thread methode doch besser...
-
dr.nobody schrieb:
hey,
welche includ dateien benöigt man um diese funktion durchzuführen?
_getch() ist unbekannt..._getch und _kbhit sind bei mir in der conio.h