Thread View: pl.comp.os.linux.programowanie
5 messages
5 total messages
Started by Maciej Ciesla
Thu, 16 Sep 1999 21:44
obsluga klawiatury
Author: Maciej Ciesla
Date: Thu, 16 Sep 1999 21:44
Date: Thu, 16 Sep 1999 21:44
12 lines
1180 bytes
1180 bytes
Jestem poczatkujacym programistom i dopiero sie ucze c. Niewiem jak moge odczytac pojedynczy klawisz bez echa i potwierdzenia enterem. Pod dos'em dziala mi funkcja getch() , a pod linuxem nie moge ja zastosowac. (niewiem co jest) Prosilbym o pomoc, jesli mozna to takze prosilbym o maly programik ktory odczytuje klawisz i wyswietla jego wartosc. maco@lg..onet.pl
Re: obsluga klawiatury
Author: Cezary H. Noweta
Date: Fri, 17 Sep 1999 09:58
Date: Fri, 17 Sep 1999 09:58
45 lines
1956 bytes
1956 bytes
Witam,
Maciej Ciesla wrote:
> Niewiem jak moge odczytac pojedynczy klawisz bez echa i potwierdzenia
> enterem.
> Pod dos'em dziala mi funkcja getch() , a pod linuxem nie moge ja zastosowac.
> (niewiem co jest)
Pod Linuxem nie ma getch().
Kody wyswietla programik gitkeys z pakietu git. Jak to zrobic -
- zobacz zrodla: src/gitkeys.c
Przyklad:
#include <stdio.h>
#include <termios.h>
#include <unistd.h>
main()
{
int c;
struct termios t, o;
tcgetattr(0, &t);
memcpy(&o, &t, sizeof(t));
cfmakeraw(&t);
tcsetattr(0, TCSANOW, &t);
do {
printf("0x%02X\r\n", (read(0, &c, 1), (unsigned)c));
} while ( c != 4 );
tcsetattr(0, TCSANOW, &o);
}
Program zakancza sie po nacisnieciu ^D. Nie radze go killowac,
bo terminal pozostanie RAW.
-- pozdrawiam
--
Cezary H. Noweta 90-237 LODZ, ul. J.Matejki 34/38 POLAND
(chn@irys.usun.drugiitrzeciczlon.uni.lodz.pl) +48 42 6356013, 6356012
University of Lodz - Main Library fax 6781678
Re: obsluga klawiatury
Author: Marcin 'Qrczak' Kowalczyk
Date: Fri, 17 Sep 1999 19:42
Date: Fri, 17 Sep 1999 19:42
14 lines
1431 bytes
1431 bytes
Fri, 17 Sep 1999 11:58:45 +0200, Cezary H. Noweta <chn@irys.usun.drugiitrzeciczlon.uni.lodz.pl> pisze:
> int c;
> printf("0x%02X\r\n", (read(0, &c, 1), (unsigned)c));
To jest nieprzenośne, działa tylko na małym endianie.
c powinno być np. typu unsigned char.
--
__("< Marcin Kowalczyk * qrczak@knm.org.pl http://kki.net.pl/qrczak/
\__/ GCS/M d- s+:-- a22 C+++>+++$ UL++>++++$ P+++ L++>++++$ E-
^^ W++ N+++ o? K? w(---) O? M- V? PS-- PE++ Y? PGP->+ t
QRCZAK 5? X- R tv-- b+>++ DI D- G+ e>++++ h! r--%>++ y-
obsluga klawiatury
Author: Przemek Borys
Date: Fri, 17 Sep 1999 21:31
Date: Fri, 17 Sep 1999 21:31
46 lines
2584 bytes
2584 bytes
EHLO Maciej!
[16 Sep 99] Maciej Ciesla->All
MC> Jestem poczatkujacym programistom i dopiero sie ucze c.
MC> Niewiem jak moge odczytac pojedynczy klawisz bez echa i
MC> potwierdzenia enterem.
MC> Pod dos'em dziala mi funkcja getch() , a pod linuxem nie moge ja
MC> zastosowac. (niewiem co jest)
Jest to, że conio nie jest specjalnie rozpowszechnionym standardem. Zobacz
http://dione.ids.pl/~pborys/txt/linux i poszukaj tam o ncurses.
Albo
man ncurses
man curs_getch
man curs_inopts
MC> Prosilbym o pomoc, jesli mozna to takze prosilbym o maly
MC> programik ktory odczytuje klawisz i wyswietla jego wartosc.
chodzi o coś takiego
/*%%%%%%%%%*\
*/#include<ncurses/curses.h>
void main()
{int a;;;;
initscr()
;/*;;;*/
cbreak();
a=/**/
getch();
endwin();
printf
("%c\n",
a);}
;)) (przepraszam za tak duży pytajnik: jak nic nie widzisz to przeleć indentem
;> )
kompilacja:
gcc test.c -lnucrses -otest
____\___\___
(_(\|,|_|,|_ [ /o)\ | GCS/S/TW/P d? s+:- a19 UL++++/H L++(++++) PGP- ]
| | |. [ \(o/ | t+++ 5+ X- R- b+ E- W++ PE PS D- !r>r+++ ]
Re: obsluga klawiatury
Author: Cezary H. Noweta
Date: Sat, 18 Sep 1999 08:49
Date: Sat, 18 Sep 1999 08:49
19 lines
1659 bytes
1659 bytes
Witam,
Marcin 'Qrczak' Kowalczyk wrote:
> > int c;
> > printf("0x%02X\r\n", (read(0, &c, 1), (unsigned)c));
> To jest nieprzenośne, działa tylko na małym endianie.
> c powinno być np. typu unsigned char.
Oops - jasne, ze powinno byc 'char c' (inaczej nie potrzebna bylaby
promocja do unsigned int, bo %X zawsze wyswietla unsigned).
Swoja droga na big-u tez nie zadziala jak w reszcie bajtow inta
znajda sie niezerowe smieci. Dzieki za errate.
-- pozdrawiam
--
Cezary H. Noweta 90-237 LODZ, ul. J.Matejki 34/38 POLAND
(chn@irys.usun.drugiitrzeciczlon.uni.lodz.pl) +48 42 6356013, 6356012
University of Lodz - Main Library fax 6781678
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads