ok ho usato questa:

codice:
void immetti_cifra (int cifra)
            {
                do
                {
                    cifra = getch ();
                }   while (cifra < '1' || cifra>'3');
            }
ma io non voglio che termini, cioè quella funzione fa parte di una classe, tale classe è inclusa nel programma pricipale, solo che quando richiamo immetti_cifra e gli passo il parametro dopo essere stata eseguita correttamente esce, invece che seguire i restante flusso del programma..poi ho un altro switch per dire..

@edit:
molto probabilmente non riesce a prendere il valore del parametro lo switch successivo(il parametro viene modificato all'interno della funzinoe) che c'è dopo e per questo il programma termina, penso che devo utilizzare il passaggio per riferimento ma non l'ho ben chiaro..sapete come risolvere? :master: