Hola, antes que nada les digo lo que hace el codigo que esta mas abajo. El usuario debe introducir una opcion que pueden ser los numros del 1 al 4 y le devuelve un mensaje, pero si no es un numero del 1 al 4 le da para ingresar de nuevo la opcion.
Al compilarlo no da errores, anda correctamente salvo por un detalle, cuando ingreso un numero que no sea ninguno del 1 al 4, todo bien, me da para ingresar la opcion de nuevo, pero si ingreso una letra queda en un bucle sin fin.
Me pueden ayudar a descubrir el error?
Gracias.
Código:
int main()
{
cout<<"Programa para realizar las cuatro operaciones basicas."<<endl<<
"Sumar,restar,multiplicar y dividir"<<endl<<endl;
ingresa_opcion:
//menu para elgir operacion
cout<<"Ingresa el n\xa3mero de opcion correspondiente a la operacion que quieres realizar:"<<endl;
cout<<"1 - SUMAR"<<endl;
cout<<"2 - RESTAR"<<endl;
cout<<"3 - MULTIPLICAR"<<endl;
cout<<"4 - DIVIDIR"<<endl<<endl;
//defino variable que usa el usuario para introducir opcion
int opcion=0;
//introduce opcion el usuario
cout<<"Tu opcion: ";
cin>>opcion;
char mensaje[]="";
switch(opcion)
{
case 1:
strcpy(mensaje,"Que n\xa3mero queres sumar?: ");
break;
case 2:
strcpy(mensaje,"Que n\xa3mero queres restar?: ");
break;
case 3:
strcpy(mensaje,"Que tabla queres multiplicar?: ");
break;
case 4:
strcpy(mensaje,"Que n\xa3mero queres dividir?: ");
break;
default:
goto ingresa_opcion;
break;
}
cout<<endl<<mensaje<<endl<<endl;;
return 0;
}