Usuário com melhor resposta
O Simples Problema de Receber Dois Valores

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!
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- Editado André SeccoMVP quinta-feira, 17 de novembro de 2016 23:20
- Sugerido como Resposta AndreAlvesLimaModerator sexta-feira, 18 de novembro de 2016 09:04
- Marcado como Resposta Robson William SilvaModerator segunda-feira, 21 de novembro de 2016 11:44
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- Editado André SeccoMVP quinta-feira, 17 de novembro de 2016 23:20
- Sugerido como Resposta AndreAlvesLimaModerator sexta-feira, 18 de novembro de 2016 09:04
- Marcado como Resposta Robson William SilvaModerator segunda-feira, 21 de novembro de 2016 11:44
-
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
-
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.