c++ Abbruch mit Esc ohne Enter unter Linux
-
Hallo,
ich möchte das eine while-schleife solange läuft bis die ESC-Taste gedrückt wird. ungefähr so:
int main () { bool x = true; while(x != true) { std::cout << "drücke ESC-Taste! \n"; if(ESChit()) break; } return 0; }
es soll aber keine Enter-Eingabe nach dem Tastendruck notwendig sein, ähnlich wie kbhit() unter windows.
Hat jemand eine Ahnung wie man das realisieren kann?
Grüße
Guddy
-
#include <conio.h>
int c = _getch();
ich weis aber nicht obs plattformunabhängig ist...
-
Die Funktion kbhit ist reines C und damit unabhäbgig von dem System einsetzbar.
-
berniebutt schrieb:
Die Funktion kbhit ist reines C und damit unabhäbgig von dem System einsetzbar.
Jo, genau wie
<conio.h>
-
bool x = true; while(x != true)
Tja, was glaubst du was da noch passiert? Genau, nämlich .. nix!
Denn x ist nie nicht true!
Damit wird niemals das in der while-Schleife ausgeführt.
Nimm das ! weg und es sollte passen.
(Kannst da aber auch gleich schreiben "while( true )")
-
franz schrieb:
bool x = true; while(x != true)
Tja, was glaubst du was da noch passiert? Genau, nämlich .. nix!
Denn x ist nie nicht true!
Damit wird niemals das in der while-Schleife ausgeführt.
Nimm das ! weg und es sollte passen.
(Kannst da aber auch gleich schreiben "while( true )")Sag niemals nie. (threads und so)
Und das ! wegnehmen reicht nicht. (OK in dem Fall schon, aber man sollte sich den Unterschied von = und == bewusst sein. ;))