Re: BEznadziejnie glupie pytanie programistyczne

Autor: Leszek KUBRAK (info_at_infokub.com.pl)
Data: Sat 24 Feb 2001 - 16:03:37 MET


On Sat, 24 Feb 2001 15:52:27 +0100 (MET), Lech Wiktor Piotrowski wrote:

>To troche outoftopic, chociaz nie jestem pewien, bo moze byc "system-dependent" :)
>
>Mianowicie, jak odczytac klawisz z klawiatury w C? Chodzi mi dokladnie o kursor... Bo
>ten zwraca kod ansi 0.
>
>Na #c mowili, ze to zalezy od systemu i nikt oczywiscie nie potrafil pomoc w OS/2...
>
>No i tu niestety w C brakuje standardowych funkcji, bo obsluga klawiatury powinna byc
>wbudowana w jakis uproszcozny sposob, jak w basicu czy pascalu :<

Ależ jest wbudowana w sposób NIEZALEŻNY od systemu (a ci twoi od #c to kretyni,
mówię z pełną odpowiedzialnością).
Standardowa funkcja w C getch(). Zwraca kod ASCII znaku. Jeżeli nacisnąłeś klawisz
funkcyjny (np.kursor, CTRL+...) to zwraca 0. Wołasz ją jeszcze raz i dostajesz resztę
kodu znaku. Poniżej przykład :

#include <conio.h>

int g4char()
{
int znak;

        znak = getch();
        if( znak == 0 )
                znak = getch() << 8;

        return( znak );
}

A w swoim programie wołasz zawsze g4char. Taka konstrukcja działa NAPEWNO pod DOS-em,
OS/2, wszelkiej maści UNIXAMI i.t.p.

==================================================
Leszek KUBRAK <info_at_infokub.com.pl>

P.U.I. "InfoKub" tel.0-602-673124
ul.Mogiłki 3A tel.(0-12)650-03-20
30-898 KRAKÓW fax.(0-12)650-03-21



To archiwum zostało wygenerowane przez hypermail 2.1.7 : Tue 18 May 2004 - 15:30:16 MET DST