@Falevi

Как исправить ошибку?

Выдаёт такую ошибку:
Необработанное исключение:
System.FormatException: Входная строка имела неверный формат.
в System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
в System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
в System.Convert.ToInt32(String value)
в Program1.Program.Main() в C:\CSAIO4D\ВК01\CH01\Program1\Program1\Program.cs:строка 42


Вот код:
static void Main()
{
Console.WriteLine("Введите первое число.");
int One = Convert.ToInt32(Console.ReadLine());

Console.WriteLine("Введите второе число.");
int Two = Convert.ToInt32(Console.ReadLine());

Console.WriteLine("Введите Третье число.");
int Three = Convert.ToInt32(Console.ReadLine());

if (One > Two)
{
if(One > Three)
{
Console.WriteLine(One);
}
else
{
Console.WriteLine(Three);
}
}
else if (Two > Three)
{
Console.WriteLine(Two);
}
else
{
Console.WriteLine(Three);
}
int Number = Convert.ToInt32(Console.ReadLine());
Number /= 2;
switch (Number)
{
case 0:
Console.WriteLine("Чётное");
break;
case 1:
Console.WriteLine("Не чётное");
break;
}
  • Вопрос задан
  • 3097 просмотров
Решения вопроса 1
В какой-то момент ты ввёл в консоль число в неверном формате, о чём и сообщается в ошибке.
В стактрейсе можно увидеть, что это произошло при вызове Convert.ToInt32 на 42й строке

System.FormatException: Входная строка имела неверный формат.
в System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
в System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
в System.Convert.ToInt32(String value)
в Program1.Program.Main() в C:\CSAIO4D\ВК01\CH01\Program1\Program1\Program.cs:строка 42

Чтобы чуть проще было обрабатывать подобные ошибки, используй int.TryParse, вместо Convert.ToInt32

int.Parse и Convert.ToInt32 стоит использовать только тогда, когда ты точно знаешь, что ввод всегда будет корректным.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
freeExec
@freeExec
Участник OpenStreetMap
Вводить в верном формате, написано же.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы