capturar numeros por teclado - DotNetClubs
en

DotNetClubs

Comunidades de estudiantes entusiastas de la tecnología

capturar numeros por teclado

Último artículo 11-23-2007 16:37 escrito por VicenteUAM. 13 respuestas.
Página 1 de 1 (14 elementos)
Ordenar mensajes: Anterior Siguiente
  • 02-10-2007 0:09

    • Ciro
    • Contribuyente Top 100
    • Se unió el 01-28-2007
    • Envíos: 4
    • Puntos: 0

    capturar numeros por teclado

    Soy Ciro, y estoy dando mis primeros pasos en C# desde mi primitivo 'C'.

    Mi duda es la siguiente: Quiero ingresar un numero por teclado pero cuando lo muestro resulta que lo toma como un valor ASCII (creo).

     

    Console.WriteLine("Ingrese un numero");

    obj.n1=Console.Read();

    Aun cuando uso Read, ReadLine, ReadKey (incluso Console.In.Peek) no me toma el valor del numero que ingreso. Por ejemplo si tecleé 1, me toma el 49 que es el equivalente en ASCII. A n1 ya la declaré como variable miembro Int en la clase. Y obj es un objeto que ya he creado. No veo donde esta el error.

    Por favor ayudenme sé que es una pregunta muy tonta pero es muy importante para mi ya que estoy metiendome de lleno en este lenguaje y tengo muchisimas ganas de aprender! Gracias!

    • Puntos de post: 0
  • 02-10-2007 0:13 en respuesta a

    • penyaskito
    • Contribuyente Top 25
    • Se unió el 08-17-2006
    • Sevilla
    • Envíos: 61
    • Puntos: 115
    • DotNetClub_Miembros

    Re: capturar numeros por teclado

    Hola Ciro, bienvenido.

    Debes usar Convert.ToInt32(Console.Read()), que te devolverá un entero.

    Un saludo, esperamos volver a verte por aquí :)
    Christian López Espínola
    http://penyaskitodice.wordpress.com
    penyaskito AT sevilla.dotnetclubs.com
    • Puntos de post: 0
  • 02-10-2007 21:33 en respuesta a

    • VicenteUAM
    • Contribuyente Top 10
    • Se unió el 09-11-2006
    • Madrid
    • Envíos: 227
    • Puntos: 1,635
    • DotNetClub_Coordinadores
      DotNetClub_Miembros
      DotNetClubs_AdminTeam

    Re: capturar numeros por teclado

    Hola!

    en .NET 2.0 (VS 2005) también puedes usar bool int.TryParse(string, out int). Para saber si en realidad lo que leiste era un int o no, compruebas el retorno de la función, y si era un int el valor está en la variable que pasaste por out.

    Un saludo!

    Vicente
    • Puntos de post: 0
  • 02-13-2007 23:27 en respuesta a

    • Ciro
    • Contribuyente Top 100
    • Se unió el 01-28-2007
    • Envíos: 4
    • Puntos: 0

    Re: capturar numeros por teclado

    Gracias por su pronta respuesta.

    ahora mi duda es la siguiente: si a n1 la declare como la variable miembro

    public int n1;

    porque tengo que Convertirla a int cuando la guardé en obj1.n1. Y si quiero capturar un caracter tambien lo tengo que convertir a string en su caso???

    gracias!!

    • Puntos de post: 0
  • 02-15-2007 10:33 en respuesta a

    • JMSobrinos
    • Contribuyente Top 10
    • Se unió el 08-18-2006
    • Madrid UCM
    • Envíos: 157
    • Puntos: 45
    • DotNetClub_Coordinadores
      DotNetClub_Miembros
      DotNetClubs_AdminTeam

    Re: capturar numeros por teclado

    Hola, Ciro

    Cuando Read lee un caracter por la consola, lo que se devuelve es la posición del caracter introducido en la tabla ASCII. 

    Para leer un carácter, tienes que leer la posicion en la tabla ASCII del caracter introducido y cuando lo vayas a utilizar convertirlo a char. Fijate en el siguiente ejemplo:

    static void Main(string[] args)

    {

    int n1;

    n1 = System.Console.Read();

    System.Console.WriteLine((char)n1);

    }

    Un saludo.

    José María Sobrinos García
    MSP 2007 España
    Vicepresidente DotNetClub-IEEESB Univ. Complutense Madrid
    http://jnoj.wordpress.com
    http://complutense.dotnetclubs.com
    • Puntos de post: 0
  • 02-15-2007 12:10 en respuesta a

    • penyaskito
    • Contribuyente Top 25
    • Se unió el 08-17-2006
    • Sevilla
    • Envíos: 61
    • Puntos: 115
    • DotNetClub_Miembros

    Re: capturar numeros por teclado

    Mejor que un casting, usar Convert o Char.TryParse.

    Un saludo.
    Christian López Espínola
    http://penyaskitodice.wordpress.com
    penyaskito AT sevilla.dotnetclubs.com
    • Puntos de post: 0
  • 02-15-2007 13:04 en respuesta a

    • JMSobrinos
    • Contribuyente Top 10
    • Se unió el 08-18-2006
    • Madrid UCM
    • Envíos: 157
    • Puntos: 45
    • DotNetClub_Coordinadores
      DotNetClub_Miembros
      DotNetClubs_AdminTeam

    Re: capturar numeros por teclado

    Se me olvidó poner esas opciones. Gracias, Penyaskito.
    José María Sobrinos García
    MSP 2007 España
    Vicepresidente DotNetClub-IEEESB Univ. Complutense Madrid
    http://jnoj.wordpress.com
    http://complutense.dotnetclubs.com
    • Puntos de post: 0
  • 02-19-2007 13:29 en respuesta a

    Re: capturar numeros por teclado

    Una nota que no tiene que ver con la pregunta pero que me ha chocado.

    Cuando programes con C# recuerda que es orientado a objetos, evita siempre declarar variables publicas, siempre es preferible declarar una variable privada (o protegida) y definir los metodos get set, es solo un consejo/apunte.

    Matias Cordero Ochoa
    Consultor de Desarrollo/Sistemas
    Informática64
    • Puntos de post: 0
  • 02-20-2007 22:50 en respuesta a

    • Ciro
    • Contribuyente Top 100
    • Se unió el 01-28-2007
    • Envíos: 4
    • Puntos: 0

    Re: capturar numeros por teclado

    Gracias a todos x vuestra ayuda. Seguiré practicando y volvere con mas dudas.

    Gracias!!

    • Puntos de post: 0
  • 02-21-2007 10:12 en respuesta a

    • JMSobrinos
    • Contribuyente Top 10
    • Se unió el 08-18-2006
    • Madrid UCM
    • Envíos: 157
    • Puntos: 45
    • DotNetClub_Coordinadores
      DotNetClub_Miembros
      DotNetClubs_AdminTeam

    Re: capturar numeros por teclado

    De nada, Ciro. Nos encantará poder volver a ayudarte. :)

    José María Sobrinos García
    MSP 2007 España
    Vicepresidente DotNetClub-IEEESB Univ. Complutense Madrid
    http://jnoj.wordpress.com
    http://complutense.dotnetclubs.com
    • Puntos de post: 0
  • 11-22-2007 22:59 en respuesta a

    • ingmichel
    • Contribuyente Top 150
    • Se unió el 11-22-2007
    • Envíos: 2
    • Puntos: 0

    Re: capturar numeros por teclado

    hola como estan todos yo tengo un problem parecido al que tiene el amigo k escribio este tema.

    tambien estoy iniciandome en c# y estoy haciendo una aplicacion de consolo que multiplique la tabla que el usuario elija capturando dicho numero de tabla.

    cree un metodo llamado tabla con un argumento entero llamado t, pero cuando intento capturar a t por teclado no me captura exactamente el numero k kiero, por ejemplo si pongo un 5 lo toma como un 53 y eso hace k la tabla no haga lo k tiene k hacer, pueno para no aburrirlos mas aki esta el codigo.

     

    public class multiplica

    {

     public virtual void tabla(int t)

    {

    int n;int r;

     

    Console.WriteLine("tabla a multiplicar");

    for (n = 1; n <= 12; n++)

    {

    r = t * n;

    Console.Write("\n" + t + "*" + n + "=" + r);

    }

    entonces el metodo main instacio de esta forma:

    namespace _201

    {

    class Program

    {

    static void Main(string[] args)

    {

    multiplica mult=new multiplica ();

    mult.tabla(Convert.ToInt32(Console.Read()));

    }

    }

    }

    y la salida no es la esperada , mi duda entonces es cual seria el modo correto para capturar datos enteros desde el teclado ?

    gracias por adelantado...

    • Puntos de post: 0
  • 11-22-2007 23:18 en respuesta a

    • penyaskito
    • Contribuyente Top 25
    • Se unió el 08-17-2006
    • Sevilla
    • Envíos: 61
    • Puntos: 115
    • DotNetClub_Miembros

    Re: capturar numeros por teclado

    Hola ingmichel,

    En ese caso estás leyendo un carácter, el carácter '5', y te lo pasa a su valor en ASCII.
    Deberías usar algo como:

    int x = Convert.ToInt32(Console.Read()) - (int) '0' ;

    Un saludo
    Christian López Espínola
    http://penyaskitodice.wordpress.com
    penyaskito AT sevilla.dotnetclubs.com
    • Puntos de post: 0
  • 11-22-2007 23:29 en respuesta a

    • ingmichel
    • Contribuyente Top 150
    • Se unió el 11-22-2007
    • Envíos: 2
    • Puntos: 0

    Re: capturar numeros por teclado

    hola Christian López Espínola, gracias por contestarme y debo decir que lla solucione mi problema he aqui la solucion en caso de que alguien tambien le ocurra lo mismo, vi un ejemplo en la web y lo que debia hacer era usar el metodo parse para poder leer correctamente, x ejemplo en mi caso yo tenia que capturar la variable t entonces seria  de esta forma:

    ya instanciada mi clase como detallo arriba:

    mult.tabla(int.Parse(Console.ReadLine() ) );

    y eso me captura mi numero entero,

    gracias de todos modos y espero volver pronto con inquietudes de este magnifico lenguaje.

     

     

     

     

    • Puntos de post: 0
  • 11-23-2007 16:37 en respuesta a

    • VicenteUAM
    • Contribuyente Top 10
    • Se unió el 09-11-2006
    • Madrid
    • Envíos: 227
    • Puntos: 1,635
    • DotNetClub_Coordinadores
      DotNetClub_Miembros
      DotNetClubs_AdminTeam

    Re: capturar numeros por teclado

    Si es .NET 2.0 mejor usa TryParse:

    int numero;
    bool resultado;

    resultado = int.TryParse(Console.ReadLine(), out numero);
    if (resultado == false)
          Console.Writeline("Error, debe introducir un número");

    Así te ahorras la excepción del int.Parse(Console.ReadLine()) si te meten un "pepe" por ejemplo ;)

    Un saludo!

    Vicente
    • Puntos de post: 0
Página 1 de 1 (14 elementos)
(c) DotNetClubs 2008
Ofrecido por Community Server (Commercial Edition)