[C][LINUX]Kody klawiszy kursora
Ostatnio zmodyfikowano 2014-06-11 15:42
szarry Temat założony przez niniejszego użytkownika |
[C][LINUX]Kody klawiszy kursora » 2014-06-11 10:43:47 Poszukuję kodów klawiszy kursora oraz innych klawiszy specjalnych (del, f1-f12 etc.) dla linuksa Próbowałem char znak; znak = getch(); printf( "%d", znak );
Powyższy kod działa świetnie dla zwykłych znaków alfanumerycznych, ale dla specjalnych zwraca wartość 27. Jakaś tabelka? Kawałek kodu? Musze się z tym wyrobić do 12-stej, bo idę prezentować program na zaliczenie, a na laptopie mam tylko Debiana. |
|
maly |
» 2014-06-11 10:55:49 #include <stdio.h> #include <conio.h> int main( void ) { int c; int extended = 0; c = getch(); if( !c ) extended = getch(); if( extended ) printf( "The character is extended\n" ); else printf( "The character isn't extended\n" ); return 0; } |
|
szarry Temat założony przez niniejszego użytkownika |
» 2014-06-11 11:28:20 Niestety, teraz zwraca dla wszystkich -73. Problem doraźnie rozwiązałem zastępując kursory WSAD'em, insert klawiszem i itd. ale i tak staram się znaleźć rozwiązanie, więc jak ktoś ma jakiś pomysł, to proszę pisać.
Dowiedziałem się na IRC, że kodowanie klawiszy specjalnych może zależeć od użytego emulatora; ale to tylko gdybanie, jeszcze nie potwierdzone. |
|
maly |
» 2014-06-11 11:44:44 |
|
pekfos |
» 2014-06-11 14:42:04 int main( void ) { int c1 =( unsigned char ) getch(), c2 = 0; if( kbhit() ) c2 =( unsigned char ) getch(); printf( "%d %d", c1, c2 ); } |
|
Elaine |
» 2014-06-11 15:07:53 |
|
Adik80 |
» 2014-06-11 15:42:19 Zalezy jaki terminal masz ustawiony. Mozesz wyswietlic wszytskie sekwencje poleceniem: infocmp $TERM. W man terminfo znajdziesz opis. Ale prosciej jest uzyc biblioteki ktora ci to zunifikuje (przeczyta baze przy starcie i bedzie zastepowala sekwencje pojedynczym znakiem) np. w ncurses getch() dla "<-" zwroci ci KEY_LEFT |
|
« 1 » |