Direi che ho risolto usando un flag booleano e faccio il test su quello. Oppure cambio il tipo di ritorno da readChar lasciando intero e il cast lo faccio solo dopo aver testato l'intero.
Grazie