elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


 


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (Moderadores: Novlucker, seba123neo, kub0x, Eleкtro)
| | | |-+  ¿Cómo evitar el ingreso de caracter en variable entera?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ¿Cómo evitar el ingreso de caracter en variable entera?  (Leído 1,004 veces)
Dryken

Desconectado Desconectado

Mensajes: 117


El arte de vencer se aprende en las derrotas


Ver Perfil WWW
¿Cómo evitar el ingreso de caracter en variable entera?
« en: 24 Noviembre 2012, 19:03 »

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.


En línea

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


Desconectado Desconectado

Mensajes: 495


Nothing


Ver Perfil
Re: ¿Cómo evitar el ingreso de caracter en variable entera?
« Respuesta #1 en: 24 Noviembre 2012, 21:09 »

Estas ingresando la información por consola?, o por medio de algún control por ejemplo un Textbox?


En línea

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

Desconectado Desconectado

Mensajes: 117


El arte de vencer se aprende en las derrotas


Ver Perfil WWW
Re: ¿Cómo evitar el ingreso de caracter en variable entera?
« Respuesta #2 en: 25 Noviembre 2012, 11:08 »

Es por consola
En línea

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$


Desconectado Desconectado

Mensajes: 1.843



Ver Perfil
Re: ¿Cómo evitar el ingreso de caracter en variable entera?
« Respuesta #3 en: 25 Noviembre 2012, 16:20 »

Deja tu codigo para que lo veamos.
En línea

Dryken

Desconectado Desconectado

Mensajes: 117


El arte de vencer se aprende en las derrotas


Ver Perfil WWW
Re: ¿Cómo evitar el ingreso de caracter en variable entera?
« Respuesta #4 en: 25 Noviembre 2012, 17:14 »

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!
En línea

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

Desconectado Desconectado

Mensajes: 295


Ver Perfil
Re: ¿Cómo evitar el ingreso de caracter en variable entera?
« Respuesta #5 en: 25 Noviembre 2012, 17:30 »

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 :/
En línea

Facilitador De Tareas - Task Simplifier (FDT)
Novlucker
Ninja y
Moderador Global
***
Desconectado Desconectado

Mensajes: 10.683


Yo que tu lo pienso dos veces


Ver Perfil
Re: ¿Cómo evitar el ingreso de caracter en variable entera?
« Respuesta #6 en: 26 Noviembre 2012, 13:41 »

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

Saludos
En línea

Contribuye con la limpieza del foro, reporta los "casos perdidos" a un MOD XD
http://twitter.com/novlucker

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

$Edu$


Desconectado Desconectado

Mensajes: 1.843



Ver Perfil
Re: ¿Cómo evitar el ingreso de caracter en variable entera?
« Respuesta #7 en: 26 Noviembre 2012, 19:16 »

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!
En línea

Dryken

Desconectado Desconectado

Mensajes: 117


El arte de vencer se aprende en las derrotas


Ver Perfil WWW
Re: ¿Cómo evitar el ingreso de caracter en variable entera?
« Respuesta #8 en: 26 Noviembre 2012, 20:21 »

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
  1. bool esValido = false;
  2.  
  3. esValido = int.TryParse (Console.ReadLine (), out numero);
  4.  
  5.    while (!esValido)
  6.                {
  7.                    Console.Write("\nError, reingrese un tipo de dato entero: ");
  8.                    esValido = int.TryParse(Console.ReadLine(), out numero);
  9.                }
     
« Última modificación: 26 Noviembre 2012, 21:10 por Dryken » En línea

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
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Powered by SMF 1.1.19 | SMF © 2006-2008, Simple Machines