Dev - C++ - ¿Cómo valido que el usuario no ingrese un numero que no se de como opcion en un switch?

 
Vista:

¿Cómo valido que el usuario no ingrese un numero que no se de como opcion en un switch?

Publicado por Efren (16 intervenciones) el 13/08/2020 23:41:09
Hola. Intenté validar que el usuario no ingresara un numero que no se diera como opcion para el switch, es decir, que lo que va dentro de los parentesis de switch( ), al momento de que los ingrese un usuario y yo solo haya indicado que hay 1, 2 o 3 como opciones, no me ingrese otro numero u otro caracter diferente. El problema está en que el selector del switch siempre lo he declarado como int, pero si ingresa una letra se empieza a volver loco el programa, entonces intenté con un string, pero el selector no admite string, así que investigué y encontré por ahí que solo puede ser de tipo int o char, pero si lo agrego como char tengo que usar un cin.getline y este ultimo me da muchos errores y si el usuario agrega más caracteres de lo establecido igualmente se vuelve loco.

Entonces me pregunto si me pueden decir alguna manera de validar esto que no cause esos errores.

Gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Alfil
Val: 4.344
Oro
Ha mantenido su posición en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

¿Cómo valido que el usuario no ingrese un numero que no se de como opcion en un switch?

Publicado por Alfil (1444 intervenciones) el 14/08/2020 08:57:05
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
#include <iostream>
 
using namespace std;
 
int main()
{
    char opcion;
 
    do {
        cout << "\n\nIntroduzca el numero 1 , 2 - 3 para salir: ";
        cin >> opcion;
        cin.ignore(80, '\n');
 
        switch(opcion)
        {
            case '1': cout << "\nUNO";
                break;
 
            case '2': cout << "\nDOS";
                break;
 
            case '3':  cout << "\nTRES - SALIR";
                break;
 
            default: cout << "\nOPCION NO VALIDA";
                break;
 
        }
    } while(opcion != '3');
 
    cout << endl;
 
    return 0;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar