Tastenabfrage
-
Hallo zusammen
ich suche anch eienr funktion (oder nach eienr möglichkeit eine funktion selber zu schreiben) die folgendes macht:
- hält das programm an
- liest einen tastenanschlag ein ohne ihn auszugeben
- braucht keine bestätigung per enter oder leertastePS: wer die sprache Elan vom bestriebssystem L3 kennt -> da heisst der befehl inchar
mir schwebt sowas vor wie:
char t; t = _new_func(); /* Rest des quellcodes */ // und man kann solche sachen machen if ( t == 's' ) std::cout<<"blablabla"<<std::endl;also quasi das was man in der winapi in der windows proc macht mit dem messagequeueing...
mfg Philipp
-
such mal nach
kbhit()und/oder
getch()
-
jo klappt mit
getch()und 'conio.h'
thx
-
Dabei musst du allerdings vorsichtig sein, da die Funktion soweit ich weiß nicht dem Standard angehört.
Also könnte es sein, dass sich dein Code nicht mit einem anderen Compiler kompilieren lässt.
-
Unter Linux(leider nicht unter win) geht das so:
#include <termios.h> #include <iostream> int set_canon(int flag) { struct termios t; tcgetattr(fileno(stdin), &t); if( flag) t.c_lflag |= ICANON; else t.c_lflag &= ~ICANON; tcsetattr( fileno(stdin), TCSANOW, &t); return 1; } int main() { int ch; set_canon( 0); std::cout << "mit t fortfahren ...\n"; if 't' == (ch = getchar())) { std::cout << " : blablabla" << std::endl; } set_canon(1); }leider gibt diese Lösung ein echo von 'ch' zurück (siehe Dave__R)
-
@double *T
getchar() gibt aber ein echo auf der konsole soviel ich weiss
getch() nicht.
-
Dave__R schrieb:
@double *T
getchar() gibt aber ein echo auf der konsole soviel ich weiss
getch() nicht.Nein, aber es wartet auf die Enter Eingabe.
-
Dave__R schrieb:
@double *T
getchar() gibt aber ein echo auf der konsole soviel ich weiss
getch() nicht.drakon schrieb:
Nein, aber es wartet auf die Enter Eingabe.
ja, stimmt. Als ich dies schrieb lehnte ich mich auf den nun editierten/verbesserten code oben, der aber leider nicht zum standard gehört und wie Dave__R schrieb ein echo auf der Konsole zurück gibt
in linux gibt es aber meineswissens kein getch().