[ Foro de C++ ]

Cómo puedo validar que el usuario no ingrese un caracter diferente de las opciones de un switch?

14-Aug-2020 02:54
Invitado (Jesus)
1 Respuestas

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


14-Aug-2020 21:43
Nacho Cabanes (+83)

Yo leería como cadena de texto, comprobaría que tiene longitud 1, y en ese caso, usaría el switch para comprobar su posición 0. Es más robusto que leer como número.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)