none
O Simples Problema de Receber Dois Valores RRS feed

  • Pergunta

  • Olá Pessoal! Estou estudando C# e estou com um problema que não acho solução. Se trata de o usuário digitar um número, pressionar espaço, digitar um segundo número e finalizar com 'Enter'. Eu gostaria de salvar os dois números digitados em variáveis distintas. A única maneira que conheço de receber dados do teclado é da forma:

    nome_da_variavel = conversão(Console.ReadLine());

    Ou seja, recebendo um valor por vez. Se puderem me ajudar, grato!


    quinta-feira, 17 de novembro de 2016 22:43

Respostas

  • Olá,

    Se você quer capturar tudo de uma vez e vai ser da forma como falou: "digitar um número, dar um espaço e digitar o outro e dar enter"

    Então você pode fazer assim:

    string digitado = Console.ReadLine();
    
    int numero1 = int.Parse(digitado.Split(' ')[0].Trim());
    int numero2 = int.Parse(digitado.Split(' ')[1].Trim());

    Caso queira receber separado os valores: "Usuário digita e dá enter, digita segundo número e dá enter". Faz assim:

    int numero1 = int.Parse(Console.ReadLine().Trim());
    int numero2 = int.Parse(Console.ReadLine().Trim());

    Espero ter ajudado!

    Valeu!


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MSP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco


    quinta-feira, 17 de novembro de 2016 23:14

Todas as Respostas

  • Olá,

    Se você quer capturar tudo de uma vez e vai ser da forma como falou: "digitar um número, dar um espaço e digitar o outro e dar enter"

    Então você pode fazer assim:

    string digitado = Console.ReadLine();
    
    int numero1 = int.Parse(digitado.Split(' ')[0].Trim());
    int numero2 = int.Parse(digitado.Split(' ')[1].Trim());

    Caso queira receber separado os valores: "Usuário digita e dá enter, digita segundo número e dá enter". Faz assim:

    int numero1 = int.Parse(Console.ReadLine().Trim());
    int numero2 = int.Parse(Console.ReadLine().Trim());

    Espero ter ajudado!

    Valeu!


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MSP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco


    quinta-feira, 17 de novembro de 2016 23:14
  • Daniel, ENTER força o ReadLine ok?

    Então, "nome_da_variavel" dificulta porque uma variável recebe 1 valor.
    Você precisa de mais de uma variável, ou uma variável (que seja uma classe) e tenha 2 campos.

    Você pode usar por exemplo "KeyValuePair<t1, t2>" que é um tipo genérico que guarda 2 valores (campos "Key" e "Value") dos tipos t1 e t2 (onde t1 e t2 podem ser qualquer tipo). Ou então, cenário mais simples do mundo, 2 variáveis e ai você faz isso:

    string[] Args = string.Split(default(Char[]), StringSplitOptions.RemoveEmptyEntries);
    //a função Split dessa forma separa a string por caracteres nulos, deixando um array de valores digitados (no seu caso 2)
    int val1 = int.Parse(Args[0]);
    int val2 = int.Parse(Args[1]);
    //e assim por diante

    quinta-feira, 17 de novembro de 2016 23:19
  • Bom dia,

    Devido a falta de interação do autor dessa pergunta,

    essa thread está sendo fechada. Caso o problema ainda

    esteja ocorrendo, favor abrir uma nova thread.

    Atenciosamente,


    Robson William Silva

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    segunda-feira, 21 de novembro de 2016 11:44
    Moderador