kbhit() unter Linux Konsole
-
Hallo,
ich brauche eine Funktion, die über eine gedrückte Taste in der Konsole prüft. Also ich brauche kbhit() oder ähnliches, nun soll es standard oder Benutzerdefiniert sein, nicht aus conio.h. Die Sprache ist C++.
MFG
-
Wenn Du einen Blick in die FAQ geworfen hättest, dann wäre Dir dieser Beitrag aufgefallen:
Pendant zu getch() und kbhit() im unix bereich???
-
Ahja, super. Die Headerdatei termios.h ist aber nur in Linux präsent? Beim Windows Kompilieren bekomme ich einen Fehler, dass sie nicht gefunden werden kann.
-
Ich glaube deswegen hat der Artikel die Überschrift "... im UNIX-Bereich"
-
Das musst Du eben entsprechen wrappen, wenn es portabel sein soll. Ein bisschen #ifdef hier und da und Du hast, was Du brauchst.
-
Ja, ich weiß, dass ich im Unix Bereich bin. Nun wollte ich ein 100% kompatibeles Programm erstellen. Könnten Sie mir sagen, wie dieses mit ifndef's aussieht?
-
Wenn Du mit "100% kompatibel" "portabel" meinst, dann ist der Ansatz dafür so:
#ifdef __wir_befinden_uns_auf_einem_windows #include "windows/kbhit.h" #elif __wir_befinden_uns_auf_einem_unix #include "unix/kbhit.h" #else #include "sonstwas/kbhit.h" #endif
Und in den entsprechenden Dateien ist dann die kbhit-Funktion für die jeweilige Plattform definiert.