¿Cómo evitar el ingreso de caracter en variable entera?

Iniciado por Dryken, 24 Noviembre 2012, 19:03 PM

0 Miembros y 1 Visitante están viendo este tema.

Dryken

Buenas, vengo de C/C++ y llevo solo cosa de 2 semanas en C# y me esta gustando mucho, son todo ventajas.

Pues eso, me preguntaba como podría evitar el error de que un usuario al acceder a un menú pulse por ejemplo la letra a y se quede pillado.

Si solo acepto variables enteras...¿que forma hay de que no ocurra nada y te vuelva a pedir introducir el valor?

He probado a poner un string para que acepte cualquier valor y funciona, pero únicamente acepta un caracter por pulsación de intro. Cuando pulsas más de uno se bloquea la app.
Lo intentas y fracasas, lo intentas y fracasas pero fracasas realmente cuando dejas de intentarlo.

Calc Don v0.7 - C
http://foro.elhacker.net/programacion_cc/source_calculadora_calc_don_10-t366489.0.html

Hundir la flota v0.3 - C#
http://foro.elhacker.net/net/source_c_juego_hundir_la_flota_v01-t377794.0.html

Keyen Night

Estas ingresando la información por consola?, o por medio de algún control por ejemplo un Textbox?
La Fé Mueve Montañas...
                                    ...De Dinero

La programación es más que un trabajo es más que un hobby es una pasión...

Dryken

Lo intentas y fracasas, lo intentas y fracasas pero fracasas realmente cuando dejas de intentarlo.

Calc Don v0.7 - C
http://foro.elhacker.net/programacion_cc/source_calculadora_calc_don_10-t366489.0.html

Hundir la flota v0.3 - C#
http://foro.elhacker.net/net/source_c_juego_hundir_la_flota_v01-t377794.0.html

$Edu$


Dryken

El código de evitar la excepción me ha dado muchos problemas y lo quite porque no había más remedio. Os dejo el código de la calculadora para ver que manera hay de evitarlo. No lo he podido poner aquí porque son casi 1000 líneas.

http://pastebin.com/j7M3yrRn

Seguramente será una tontería hallar la forma de evitar el problema pero no doy con el clavo.

Saludos!
Lo intentas y fracasas, lo intentas y fracasas pero fracasas realmente cuando dejas de intentarlo.

Calc Don v0.7 - C
http://foro.elhacker.net/programacion_cc/source_calculadora_calc_don_10-t366489.0.html

Hundir la flota v0.3 - C#
http://foro.elhacker.net/net/source_c_juego_hundir_la_flota_v01-t377794.0.html

spiritdead

Cita de: Dryken en 25 Noviembre 2012, 17:14 PM
El código de evitar la excepción me ha dado muchos problemas y lo quite porque no había más remedio. Os dejo el código de la calculadora para ver que manera hay de evitarlo. No lo he podido poner aquí porque son casi 1000 líneas.

http://pastebin.com/j7M3yrRn

Seguramente será una tontería hallar la forma de evitar el problema pero no doy con el clavo.

Saludos!

hubieras copiado solamente la parte donde intentas validar lo q dices :/
Facilitador De Tareas - Task Simplifier (FDT)

Novlucker

Tienes muy pocas opciones en tu menú, para que utilizar un long?, y no utilices Parse sino TryParse para validar el input.

Saludos
Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD

"Hay dos cosas infinitas: el Universo y la estupidez  humana. Y de la primera no estoy muy seguro."
Albert Einstein

$Edu$

Usa lapiz y papel antes de empezar a programar, asi te organizaras mejor, aunque luego estas cosas las haras sin pensar porque es lo basico que tienes que saber.
Busca sobre bucles Do-While, borrado de pantalla en la consola, el uso de TryParse y entenderas como hacerlo.
Lee un buen tutorial, hay unos de "el guille" que si buscas en google encontraras. Saludos!

Dryken

#8
Gracias por la sugerencia compañero, me pondré a buscar antes de preguntar, cosa que debería haber hecho  :P

Busco los tutoriales y me informo a ver si soy capaz de sacarlo por mi mismo, gracias por la ayuda!

Edito

Para quién lo necesite

Código (csharp) [Seleccionar]
bool esValido = false;

esValido = int.TryParse (Console.ReadLine (), out numero);

    while (!esValido)
                {
                    Console.Write("\nError, reingrese un tipo de dato entero: ");
                    esValido = int.TryParse(Console.ReadLine(), out numero);
                }

     
Lo intentas y fracasas, lo intentas y fracasas pero fracasas realmente cuando dejas de intentarlo.

Calc Don v0.7 - C
http://foro.elhacker.net/programacion_cc/source_calculadora_calc_don_10-t366489.0.html

Hundir la flota v0.3 - C#
http://foro.elhacker.net/net/source_c_juego_hundir_la_flota_v01-t377794.0.html