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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  ¿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 5,193 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 pm »

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: 496


Nothing


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

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 am »

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.842



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

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 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!
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: 296


Ver Perfil
Re: ¿Cómo evitar el ingreso de caracter en variable entera?
« Respuesta #5 en: 25 Noviembre 2012, 17:30 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 :/
En línea

Facilitador De Tareas - Task Simplifier (FDT)
Novlucker
Ninja y
Colaborador
***
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 pm »

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
"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.842



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

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 pm »

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 pm 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:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Empacar dos caracteres en una variable entera unsigned. [C]
Programación C/C++
DanielPy 7 3,179 Último mensaje 24 Febrero 2015, 04:44 am
por engel lex
cómo comparar una variable caracter con un código ascii en C « 1 2 »
Programación C/C++
etcheverrypablol 12 25,196 Último mensaje 5 Febrero 2016, 11:57 am
por etcheverrypablol
Dudas con variable entera y bucles en python.
Scripting
NOB2014 6 4,247 Último mensaje 9 Octubre 2017, 19:44 pm
por ivancea96
Capturar un Caracter en una variable tipo Int
Programación C/C++
SDCC 2 1,999 Último mensaje 3 Marzo 2018, 05:57 am
por SDCC
Introducir un caracter como variable.
Programación C/C++
skullmang 0 1,631 Último mensaje 7 Octubre 2018, 18:50 pm
por skullmang
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines