Anzichè usare getchar(), usa un semplice cin, no?

codice:
cout<<endl<<"Ritornare al menu? (y/n) :  ";
cin>>ris;
Così funziona, non saprei spiegarti il motivo, forse prende l'invio come carattere, ma è solo un'ipotesi...

Riguardo l'altra domanda, no, puoi usare anche il \n per andare a capo. Ciao.

edit: credo proprio sia l'invio, infatti se provi ad inserire più caratteri ti ristampa la domanda tante volte quanti sono i caratteri inseriti.