Ir ao conteúdo
  • Cadastre-se

C# - Seqüência de entrada não estava em um formato incorreto


ptkato

Posts recomendados

static class Constants{   public const int MB = 4;}class Programa 1{   int nt1 = Int32.Parse(Console.ReadLine());}

Pessoal, preciso saber se isso funciona, pois está exatamente assim aqui e dá um erro no "Int32.Parse(Console.ReadLine());": "seqüência de entrada não estava em um formato incorreto", quando executa.

 

O usuário deve digitar MB, o programa entender que ele digitou 4 e converter para int.

Link para o comentário
Compartilhar em outros sites

@

 

 

O usuário deve digitar MB, o programa entender que ele digitou 4 e converter para int.

 

 

Você vai precisar verificar explicitamente o que foi digitado pelo usuário e com base nisso tomar as devidas decisões. Exemplo:

string stri = Console.ReadLine();int nt1;if (stri == "MB")    nt1 = Constants.MB;else    nt1 = -1;

Pode usar um switch caso prefira.

 

 

 

LNW

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Entendo, agora o problema é outro...

static void Main (string[] args){   double x1, x2;   ...   Console.WriteLine("{{0}, {1}}.", x1.ToString(), x2.ToString());}

E dá o mesmo erro.

 

~~~~~~

 

Também dá o mesmo erro se eu simplesmente aperto enter, sem escrever nada, no primeiro ReadLine.

Acho que é porque estou convertendo diretamente do ReadLine e quando coloca nada, não tem o que converter e dá erro, mas não sei outro meio que eu possa usar para converter sem prejudicar o funcionamento do programa.

Link para o comentário
Compartilhar em outros sites

@

 

 

Também dá o mesmo erro se eu simplesmente aperto enter, sem escrever nada, no primeiro ReadLine.

Acho que é porque estou convertendo diretamente do ReadLine e quando coloca nada, não tem o que converter e dá erro, mas não sei outro meio que eu possa usar para converter sem prejudicar o funcionamento do programa.

 

No outro tópico eu havia comentado sobre o método TryParse. Você pode amarrar essa leitura num laço de repetição para que sempre valide a entrada correta do valor numérico lido pelo teclado. Exemplo:

double x1;while (!Double.TryParse(Console.ReadLine(), out x1)){    Console.WriteLine("Número inválido! Digite novamente.");}Console.WriteLine(x1);

Não é necessário explicitar o método ToString() para imprimir o valor.

 

O separador decimal será o padrão do seu Windows. Provavelmente, a vírgula.

 

 

 

 

 

LNW

Link para o comentário
Compartilhar em outros sites

  • 3 meses depois...
Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...