Tengo un problema con este code.
Código:
#include <iostream> using namespace std; // El Switch ejecuta un bloque de intrucciones. int main() { int opcion; bool opcion_valida = false; // La ponemos en false para que se inicie el while. while (! opcion_valida) // While en ingles es (mientras). Entonces mientras la opcion_valina no(!) sea valida se ejecutara el while. { cout << "1)Realizar llamada \n" << "2)Libreta de telefonos \n" << "3)Configuracion\n" << endl; cin >> opcion; // Ingresa los datos en pantalla. switch (opcion) { case 1: cout << "Se realiza una llamada" << endl; opcion_valida = true; break; case 2: cout << "Se busca un telefono" << endl; opcion_valida = true; break; case 3: cout << "Configuracion" << endl; opcion_valida = true; break; default: cout << "La opcion ingresada no es valida" << endl; break; } } system("pause"); return 0; }
Cuando ingreso una letra en vez de un número, el programa hace un ciclo sin fin mostrando las 3 opciones sin parar.
Creo que el problema esta en el "int opcion;".
"int" es solo para números enteros, así que al insertar una letra se vuelve loco.
Creo que debería crear otra función donde al terminar el bloque de "switch" si el valor ingresado no es numérico, salte a otra parte del programa en donde detecte que es una letra y muestre un mensaje de opción incorrecta.
Pero no se me ocurre la forma de lograrlo.
Seguro que es fácil pero aun estoy un poco verde jeje.
Saludos.