PDA

Visualizza la versione completa : [C] utilizzo tasti con getch()?


glukosio
23-09-2013, 14:59
Ciao a tutti, sto creando un prato fiorito giusto per svago per il terminale di windows, con la funzione getch() ho risolto per usare i tasti freccia, mentre per la barra spaziatrice devo premere due volte il tasto per farlo riconoscere, ecco qua il mio codice (solo la parte interessata), qualcuno che potrebbe darmi un consiglio su come fare?

#include<stdio.h>
int main(void)
{
while(1){
if (getch() == 224) {
switch (getch()) {
case 72: printf("su\n");
break;
case 75: printf("sinistra\n");
break;
case 77: printf("destra\n");
break;
case 80: printf("giu\n");
break;
}
}
else if(getch()==32) printf("spazio\n");
}
return 0;
}
:ciauz:

Scara95
23-09-2013, 15:36
char ch;
while(1){
ch = getch();
if (ch == 224) {
switch (getch()) {
case 72: printf("su\n");
break;
case 75: printf("sinistra\n");
break;
case 77: printf("destra\n");
break;
case 80: printf("giu\n");
break;
}
}
else if(ch==32) printf("spazio\n");
}

Oppure:

while(1){
if(getch()==32) {
printf("spazio\n")
} else {
switch (getch()) {
case 72: printf("su\n");
break;
case 75: printf("sinistra\n");
break;
case 77: printf("destra\n");
break;
case 80: printf("giu\n");
break;
}
}
}

In ogni caso getch non risiede in stdio quindi manca un include.

glukosio
23-09-2013, 15:54
Grazie mille, il secondo codice funziona bene mentre nel primo funziona solo lo spazio :/
comunque si lo so e me lo scrive anche durante la compilazione, ma comunque include qualcosa di incluso in automatico quindi per ora non mi ci faccio problemi ;)

Scara95
23-09-2013, 15:58
Perchč getch puņ ritornare valori diversi da 224, io ho assunto che il tuo funzionasse e non me ne sono preoccupato, ma se non funziona quello non funziona nemmeno il tuo con i tasti freccia!
Non bisognerebbe mai ignorare i warning.

glukosio
23-09-2013, 16:20
Il mio funziona, solo che per fargli scrivere "spazio" devo premere lo spazio due volte, come se aspettasse conferma, poi i tasti 224 funzionano tutti senza problemi, il warning mi dice soltanto che non č incluso il conio.h (o chi per esso) e che perņ lo include di default, quindi non č quello il punto,
comunque la seconda soluzione che mi hai dato funziona perfettamente :)
Mi sto divertendo a giocarci ancora prima di aver completato il tutto :D
thanks :ciauz:

Loading