Schleife bei Tastatureingabe abbrechen

voelzi

Mitglied
Hallo

Ich schreibe gerade ein Konsolen-Programm (DEV-C++ mit C++), das mittels einer "Endlos-Schleife" externe Schnittstellen ansteuert bzw. externe Schnittstellen einliest. Diese Endlosschleife soll aber mittels einer Tastatureingabe unterbrochen werden.

Hier ein kleines Beispiel zum Verständnis:

int kontakt;

while(?)
{
kontakt=kontakt+1;
cout << "Messpunkt:" <<z<< " " << kontakt <<"\n";
}

Diese Schleife soll solange durchlaufen werden, bis eine Taste gedrückt wird.

Vielen Dank für die Hilfe

Gruß
Voelzi
 
Kenn mich zwar nicht soo gut in C++ aus, aber ich würde es so machen:
Eine Schleife solange durchlaufen lassen, wie eine boolean Variable true ist. In der Schleife eine Abfrage starten, ob eine Taste gedrückt wurde, wenn ja boolean auf false setzen, ansonsten weiterlaufen.

Ausprogrammiert müsste das dann ca. so aussehen.

PHP:
bool bLoop = true;
int kontakt;

while(bLoop)
{
kontakt=kontakt+1;
cout << "Messpunkt:" <<z<< " " << kontakt <<"\n";
if(_kbhit()){
bLoop=false;
}
}
 
Für dein Vorhaben brauchst du Threads.

Pseudocode:

Hauptprogramm:

bool eingabegetätigt = nicht_wahr;

solange eingabebetätigt nicht_wahr
tu etwas
springe zum anfang der schleife


Thread:
warte auf eingabe
eingabe getätigt, setze schalter eingabegetätig auf wahr;
 
was Teambeta meint ist:
C++:
bool bLoop=true;

VOID Tastendruckerkennung (PVOID pvoid){

getch();//Warte auf  tastendruck

Stop=false;

return;

}

Ich persönlich finde aber auch, das folgendes möglich ist. (Vorteil an dieser Variante: es wird dazu nicht process.h UND conio.h , sondern nur conio.h benötigt.)

C++:
while(kbhit()==0)
{
kontakt=kontakt+1;
cout << "Messpunkt:" <<z<< " " << kontakt <<"\n";
}

Denn hat sich das. Zack, auf Tastendruck ist die Schleife zuende.

Beides ist aber möglich, und beides funktioniert.
 
Sorry.

War noch halb bei nem anderen Code den ich mal zur Hilfe geschrieben habe. da hab ich vergessen das letzte Stop in bLoop umzuwandeln. nochmal sory.

Aber ansonsten sollte es funktiionieren^^.
 
Zurück