Originariamente inviato da m4st3r
quello che mi dici di fare è di far diventare la variabile scelta un char?
No....cin.get() ritorna un int che rappresenta la codifica ascii del carattere digitato (leggi qui)

Se ti è più chiaro, invece di scrivere:
codice:
while (scelta<'1' || scelta>'5');
puoi anche scrivere
codice:
while (scelta<49 || scelta>53);
poiché 49 è la codifica ascii di 1 e 53 è quella di 5.

L'unica cosa che cambia e di cui mi sono accorto ora è che il valore di ritorno della tua funzione cambia, non è più compreso tra 1 e 5 ma tra 49 e 53.
Per correggere questo errore puoi scrivere
codice:
return (scelta - 48);
al posto di
codice:
return scelta;