Erro na linguagem cSharp
16/09/2019
0
Foi me passado um trabalho em C#, pois não conhecemos a linguagem ainda, mas pelo meu ver fiz tudo certo. Ao compilar ele roda a primeira vez e da um erro e não estou entendendo o porque, creio que seja do buffer, porem já tentei de tudo.
System.FormatException: ''''''''''''''''A cadeia de caracteres de entrada não estava em um formato correto.''''''''''''''''
esse é o erro que aparece(apesar de falar que não tem erro)
cod
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Exercicio_3
{
class Program
{
static void Main()
{
int opcao = 1;
while (opcao != 0)
{
Console.Clear();
Console.WriteLine(" [Menu de Opções]");
Console.WriteLine("1 - Média aritmética");
Console.WriteLine("2 - Média ponderada");
Console.WriteLine("0 - Sair");
Console.WriteLine("Opção: ");
opcao = int.Parse(Console.ReadLine()); // (ERRO NESTA LINHA)
switch (opcao)
{
case 1:
{
mediaAri();
Console.Clear();
break;
}
case 2:
{
mediaPon();
Console.Clear();
break;
}
case 0:
{
Console.WriteLine("Finalizando...");
Console.Read();
break;
}
default:
{
Console.WriteLine("Opção Invalida...");
Console.Read();
Console.Clear();
break;
}
}
}
}
static void mediaAri()
{
Console.Clear();
float num1, num2, media;
Console.WriteLine(" [Média aritimética]");
Console.WriteLine("\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\nDigite o primeiro número: ");
num1 = float.Parse(Console.ReadLine());
Console.WriteLine("\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\nDigite o segundo número: ");
num2 = float.Parse(Console.ReadLine());
media = (num1 + num2) / 2;
Console.WriteLine("\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\nMédia: {0:N2}", media);
Console.Read();
}
static void mediaPon()
{
Console.Clear();
float nota1, nota2, nota3, p1, p2, p3, media;
Console.WriteLine(" [Média Ponderada]");
Console.WriteLine("\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\nDigite a primeira nota: ");
nota1 = float.Parse(Console.ReadLine());
Console.WriteLine("Peso: ");
p1 = float.Parse(Console.ReadLine());
Console.WriteLine("\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\nDigite a segundo nota: ");
nota2 = float.Parse(Console.ReadLine());
Console.WriteLine("Peso: ");
p2 = float.Parse(Console.ReadLine());
Console.WriteLine("\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\nDigite a terceira nota: ");
nota3 = float.Parse(Console.ReadLine());
Console.WriteLine("Peso: ");
p3 = float.Parse(Console.ReadLine());
media = ((nota1 * p1) + (nota2 * p2) + (nota3 * p3)) / 3;
Console.WriteLine("Média: ", media);
Console.Read();
}
}
}
System.FormatException: ''''''''''''''''A cadeia de caracteres de entrada não estava em um formato correto.''''''''''''''''
esse é o erro que aparece(apesar de falar que não tem erro)
cod
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Exercicio_3
{
class Program
{
static void Main()
{
int opcao = 1;
while (opcao != 0)
{
Console.Clear();
Console.WriteLine(" [Menu de Opções]");
Console.WriteLine("1 - Média aritmética");
Console.WriteLine("2 - Média ponderada");
Console.WriteLine("0 - Sair");
Console.WriteLine("Opção: ");
opcao = int.Parse(Console.ReadLine()); // (ERRO NESTA LINHA)
switch (opcao)
{
case 1:
{
mediaAri();
Console.Clear();
break;
}
case 2:
{
mediaPon();
Console.Clear();
break;
}
case 0:
{
Console.WriteLine("Finalizando...");
Console.Read();
break;
}
default:
{
Console.WriteLine("Opção Invalida...");
Console.Read();
Console.Clear();
break;
}
}
}
}
static void mediaAri()
{
Console.Clear();
float num1, num2, media;
Console.WriteLine(" [Média aritimética]");
Console.WriteLine("\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\nDigite o primeiro número: ");
num1 = float.Parse(Console.ReadLine());
Console.WriteLine("\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\nDigite o segundo número: ");
num2 = float.Parse(Console.ReadLine());
media = (num1 + num2) / 2;
Console.WriteLine("\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\nMédia: {0:N2}", media);
Console.Read();
}
static void mediaPon()
{
Console.Clear();
float nota1, nota2, nota3, p1, p2, p3, media;
Console.WriteLine(" [Média Ponderada]");
Console.WriteLine("\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\nDigite a primeira nota: ");
nota1 = float.Parse(Console.ReadLine());
Console.WriteLine("Peso: ");
p1 = float.Parse(Console.ReadLine());
Console.WriteLine("\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\nDigite a segundo nota: ");
nota2 = float.Parse(Console.ReadLine());
Console.WriteLine("Peso: ");
p2 = float.Parse(Console.ReadLine());
Console.WriteLine("\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\nDigite a terceira nota: ");
nota3 = float.Parse(Console.ReadLine());
Console.WriteLine("Peso: ");
p3 = float.Parse(Console.ReadLine());
media = ((nota1 * p1) + (nota2 * p2) + (nota3 * p3)) / 3;
Console.WriteLine("Média: ", media);
Console.Read();
}
}
}
Adriano
Curtir tópico
+ 0
Responder
Post mais votado
17/09/2019
Certamente alguma coisa no buffer, com um try catch dá para contornar isso, você também pode fazer sua aplicação só ler os números de tbm.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ConsoleApp1 { class Program { static void Main() { int opcao = 1; while (opcao != 0) { Console.Clear(); Console.WriteLine(" [Menu de Opções]"); Console.WriteLine("1 - Média aritmética"); Console.WriteLine("2 - Média ponderada"); Console.WriteLine("0 - Sair"); Console.WriteLine("Opção: "); try { //Provalmente alguma coisa no buffer quebra o parse opcao = int.Parse(Console.ReadLine()); // (ERRO NESTA LINHA) } catch { } switch (opcao) { case 1: { mediaAri(); Console.Clear(); break; } case 2: { mediaPon(); Console.Clear(); break; } case 0: { Console.WriteLine("Finalizando..."); Console.ReadKey(); break; } default: { Console.WriteLine("Opção Invalida..."); Console.Read(); Console.Clear(); break; } } } if(opcao == 0) { Environment.Exit(0); } } static void mediaAri() { Console.Clear(); float num1, num2, media; Console.WriteLine(" [Média aritimética]"); Console.WriteLine("\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\nDigite o primeiro número: "); num1 = float.Parse(Console.ReadLine()); Console.WriteLine("\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\nDigite o segundo número: "); num2 = float.Parse(Console.ReadLine()); media = (num1 + num2) / 2; Console.WriteLine("\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\nMédia: {0:N2}", media); //Para conseguir voltar ao menu inicial Console.WriteLine("Enter para voltar"); Console.ReadKey(); } static void mediaPon() { Console.Clear(); float nota1, nota2, nota3, p1, p2, p3, media; Console.WriteLine(" [Média Ponderada]"); Console.WriteLine("\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\nDigite a primeira nota: "); nota1 = float.Parse(Console.ReadLine()); Console.WriteLine("Peso: "); p1 = float.Parse(Console.ReadLine()); Console.WriteLine("\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\nDigite a segundo nota: "); nota2 = float.Parse(Console.ReadLine()); Console.WriteLine("Peso: "); p2 = float.Parse(Console.ReadLine()); Console.WriteLine("\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\nDigite a terceira nota: "); nota3 = float.Parse(Console.ReadLine()); Console.WriteLine("Peso: "); p3 = float.Parse(Console.ReadLine()); media = ((nota1 * p1) + (nota2 * p2) + (nota3 * p3)) / 3; //Mudei Console.WriteLine("Média: ", media); Console.WriteLine("Enter para voltar"); //Para conseguir voltar ao menu inicial Console.ReadKey(); } } }
Bruno Pardim
Responder
Clique aqui para fazer login e interagir na Comunidade :)