prüfen, ob nur entertaste gedrückt wurde
-
wollte das mit standard mitteln machen. also ohne getch, ohne GetAsyncKeyState etc.
-
Was meinst du mit Standartmitteln?^^
Ohne windows.h, oda wie?
-
jah!
mit c++ standard.
-
...geht das nicht.
-
ähm kann man das auch auf die gesamte Laufzeit erweitern ?
also, dass das Programm das die ganze zeit auf ein "Enter wartet" und im falle eines Tastendrucks etwas ausspuckt ?mit VC++ und darkgdk geht das ganz einfach, aber wie gehts in C++ (oder WinApi)
-
Würde mich auch interresieren! Also irgendwie gehts bestimmt, das hat man ja bei vielen Spielen so...das hab ich auch schonmal versucht, aber habs net geschafft
Also falls wer ne Lösung hat...!
-
jopp, geht
in der konsole auf nen enter warten geht mit standard-cpp:
std::cin.clear(); std::cin.ignore( std::cin.rdbuf()->in_avail() ); std::cin.get();andernfalls kannst du auch noch GetAsyncKeyState oder _getch() und _kbhit() verwenden
und wahrscheinlich noch paar andere wege - aber mit standard-cpp gibt es nur diesen einen weg von oben - der blockiert dann aber halt das ganze programm - und ich glaube, das willst du nicht ^^bb
-
doch das geht in die richtige richtung,

es soll auf die eingabe der entertaste gewartet werden und es soll nur enter gedrückt werden.ich habe das jetzt mal verwertet:
std::cin.clear(); std::cin.ignore( std::cin.rdbuf()->in_avail() ); std::cin.get(); if ( std::cin.rdbuf()->in_avail() == 0 ) cout << "Es wurde nur die Entertaste gedrueckt." << endl; else cout << "Es wurden noch andere Zeichen eingegeben." << endl;funzt! danke und gruß
ent0r
-
na du bist ein held : D
std::string R; std::cin >> R; if(R.empty()) //... else //...wozu brauchst du das denn genau? dann könnte man evtl ne bessere variante finden (z.bsp. auch getline o.ä.) ...
bb
-
die variante scheint mir noch besser. es sollen wörter eingegeben werden in einen vector. wenn nur enter gedrückt wurde, ohne das etwas eingegeben wurde, dann soll das programm weiter laufen und die wörter verarbeiten.
-
Das geht natürlich nicht, was ich da oben geschrieben habe - sry ^^
std::string R; std::getline(std::cin, R); if (R.empty()) // esle //bb
-
Finn schrieb:
Würde mich auch interresieren! Also irgendwie gehts bestimmt, das hat man ja bei vielen Spielen so...das hab ich auch schonmal versucht, aber habs net geschafft
Also falls wer ne Lösung hat...!Bei Spielen ist es oft so, dass eine Schleife läuft und in jedem Frame (Schleifendurchgang) auf Events abgefragt wird. Events sind dann zum Beispiel Mausklicks, Tastatureingaben oder Fenster-Fokus-Veränderungen.