Allora, c'è un problema.
Se usi Visual C++, la funzione getch considera le freccie dei tasti "estesi".
Se il tasto è esteso getch() ritorna -32, non il codice della freccia.
Per leggere il codice del tasto esteso, lo leggi richiamando un'altra volta getch().
Es.
codice:char car = 0; char car2 = 0; if ((car = getch()) == -32) { // il tasto è esteso, quindi può essere una delle frecce. switch (car2 = getch()) { /* Controlla se car2 è 77, 72 ecc... */ }