Devi levare la funzione cin che hai messo prima della getch, in pratica li è come se chiedessi due volte l'input, la prima volta è quello della cin, e viene salvato soltanto dopo che hai premuto il tasto invio, la seconda volta invece è quello della getch, che invece salva soltanto il singolo carattere premuto sulla tastiera. Se a te serve che il carattere venga salvato dentro una variabile puoi benissimo fare così
Codice:
risp =getch();
if (risp == char(27))
main ();
else
//quello che ti serve...
Comunque devi usare la libreria conio.h per poter usufruire della getch
ti posto un piccolo esempio per levarti ogni dubbio
Codice:
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
char a;
for(;;) {
cout<<"Premi ESC per uscire"<<endl;
a=getch();
if (a==char(27))
return 0;
else cout<<"Hai premuto \""<<a<<"\" invece di ESC"<<endl;
}
}