PDA

Visualizza versione completa : problemi con getch()


SkAkKo
29-11-2004, 21.52.14
ciao a tutti!
raga ho questo pezzo di codice

#define LEFT 0x4B


int main()
{
char c;
c=getch();
if (c==LEFT)
printf("Key sinistra");
}
se digito <- non funziona quindi provo a vedere cosa contiene c e faccio

printf("%X",c);

e vedo che contiene questo numero FFFFFFE0
allora metto un secondo getch()

int main()
{
char c,d;
c=getch();
d=getch();
if (d==LEFT)
printf("Key sinistra");
}

cosi funziona e d contiene 4B.. ma perch devo usare due getch() ??
grazie
:p

Dav82
29-11-2004, 22.11.07
In queste cose sono assolutamente una chiavica (Java (L)), ma ho qualche lontano ricordo che mi dice che le frecce appartengono ai caratteri doppi, ossia quelli il cui codice a 16 bit e non a 8.

Ho detto una stro@@ata? :confused:
Oggi ne ho gi sparate un po'... :rolleyes:

SkAkKo
29-11-2004, 22.16.24
:D pu darsi .... aspettiamo qualche altro messaggio :p

LoryOne
30-11-2004, 08.40.30
Prova a dare un'occhiata qui:
http://www.wintricks.it/forum/showthread.php?threadid=69699&perpage=10&highlight=freccia&pagenumber=3
Il Web aveva postato come "evitare" lo scancode utilizzando un solo getch().
Dav non ha tutti i torti.
Con soli 8 bit possibile gestire i caratteri della tabella dei codici ASCII da 0 a 256 ma nelle moderne tastiere vi sono altri tasti che possono essere premuti; per esempio i tasti funzione, le frecce (appunto) ed i numeri sul keypad.
Ecco perch 8 bit non sono abbastanza per riconoscere quale tasto stato premuto. :)

Sergio Neddi
30-11-2004, 13.43.29
Certo, le frecce hanno 2 caratteri e se non ricordo male uno a zero.

SkAkKo
01-12-2004, 18.31.12
k..grazie a tutti!
:p