Wie kann ich erkennen, ob irgendeine Taste gedrückt ist, die vom Benutzer in C++ (Konsole)?
Ich Schreibe ein C++ - CLI Anwendung, wie kann ich erkennen, ob irgendeine Taste gedrückt ist durch den Anwender. Ich habe gesehen, dass in c# aber wie kann es sein, implementieren Sie in c++
while(1)
{
while(/* code to check if any key is pressed*/)
{ //rest of the code
//sleep function
}
}
Hinweis: wie in CLI-Spiele zu verschieben oder bestimmte Aktionen ausführen, wenn eine Taste gedrückt wird oder nicht tun, jedes Ding, wenn keine Eingabe gegeben ist.
Ich habe festgestellt, dass wir auch verwenden können, _khbit () - Funktion in c++. _khbit ist gleich 1, wenn eine beliebige Taste gedrückt wird. Sie müssen klar die _khbit Puffer sonst bleibt es 1. Methode zum löschen ist Zeichen = getch(); Dies speichert die zuletzt eingegebene Taste in Zeichen, die können Sie vergleichen und entscheiden, welche Aktion auf welcher Taste.
InformationsquelleAutor Osaid | 2012-11-04
Du musst angemeldet sein, um einen Kommentar abzugeben.
Unter windows zumindest könnten Sie GetKeyState
InformationsquelleAutor Mihai Sebea
wir können _kbhit () - Funktion in c++. _kbhit ist gleich 1, wenn eine beliebige Taste gedrückt wird. Sie müssen klar die _kbhit Puffer sonst bleibt es 1. Methode zum löschen ist Zeichen = getch(); Dies speichert die zuletzt eingegebene Taste in Zeichen, die können Sie vergleichen und entscheiden, welche Aktion auf welcher Taste.
InformationsquelleAutor Osaid
While-Schleife kann die CPU beansprucht, ich habe nicht Rat busy waiting Methode, sondern Sie sollten darüber nachdenken, event-hooking.
Hier können Sie Lesen über winapi Tastenanschlag-Ereignis anschließen C++ Win32-Tastatur-Ereignisse
Wenn Sie noch daran interessiert sind, verwenden Sie die while-Schleife, Sie sollte auch frei einige Ressourcen, die durch den Schlaf nach der überprüfung, dass eine Bedingung falsch ist (z.B. nanosleep )
InformationsquelleAutor Michael