Schleife abbrechen durch Tastendruck
-
Ich bin mir nicht ganz sicher aber so müßte es doch auch gehen oder?
for(int counter=10;counter>=0;counter--) { Sleep (1000); cout <<counter<<" "; char blabla; if(std::cin>>blabla); }
klar man müßte noch auf die richtige Eingabe prüfen...
-
garfield7554 schrieb:
Ich bin mir nicht ganz sicher aber so müßte es doch auch gehen oder?
abgesehen davon, dass Sleep nicht im Standard ist gibt es noch das Problem, dass cin>> solange wartet, bis auch etwas eingegeben wurde.
kbhit und conio.h sind auch nicht Standard, aber ich glaube, im Konsolenforum bzw. deren FAQs lässt sich einiges darüber finden.
-
Dieser Thread wurde von Moderator/in davie aus dem Forum C++ in das Forum DOS und Win32-Konsole verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
davie schrieb:
kbhit und conio.h sind auch nicht Standard, aber ich glaube, im Konsolenforum bzw. deren FAQs lässt sich einiges darüber finden.
Korrekt. Also einfach kurz in die Konsolen-FAQ schauen und schon hat man die Lösung bzw. den Lösungsansatz :).
-
ja wie muß ich das jetzt verstehen, was passiert jetzt bei meinem Lösungsansatz
laut davie wartet cin>> solange bis etwas eingegeben wurde und das soll ja auch so sein oder versteh ich da was falsch?
-
ok, mit kbhit bricht die schleife ab, das ist schonmal gut. Und wie kann ich nun vergleichen, ob die gedrückte Taste auch die richtige Antwort ist ???
-
Du ließt den gedrückten Wert mit getch() aus und vergleichst dann?
MfG SideWinder
-
Hallo,
Iirgendwie versteh ich das immer noch nicht ganz. Kann mir eventuell einer sagen, wie die Prüfung aussehen muss, in der Geprüft wird ob ich a gedrückt habe ?#include <iostream> #include <conio.h> #include <conio.c> #include <time.h> using namespace std; int main (void) { int counter=20; while(!kbhit()) { cout <<counter<<" "; Sleep(1000); } if(?????????????????) { cout <<"Sie haben a gedrueckt "; } getch(); return 0; }
-
Die Schleife wartet 10 Sekunden lang, wird während dieser Zeit nichts eingegeben ist das Spiel verloren, wurde ein Zeichen eingegeben wird dieses ausgegeben.
unsigned short int Sekunden = 0; while(!kbhit && Sekunden < 10) { Sleep(1000); ++Sekunden; } if(Sekunden!=10) { cout << "Ihre Antwort war: " << getch() << endl; } else { cout << "Keine Antwort binnen 10 Sekunden, Game Over!" << endl; }
Sollte soweit funktionieren.
MfG SideWinder
-
Fehlerkorrektur und eindeutigere Abprüfung:
unsigned short int Sekunden = 0; while(!kbhit() && Sekunden < 10) { Sleep(1000); ++Sekunden; } if(kbhit()) { cout << "Ihre Antwort war: " << getch() << endl; } else { cout << "Keine Antwort binnen 10 Sekunden, Game Over!" << endl; }
-
Fehlerkorrektur? Was funktioniert an meinem Code nicht?
MfG SideWinder
-
@Side
Versuch mal in C eine Funktion aufzurufen ohne ()
-
-
Die Funktion kenn ich nicht