Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.53/40: Рейтинг темы: голосов - 40, средняя оценка - 4.53
0 / 0 / 0
Регистрация: 30.11.2021
Сообщений: 67

Почему возникает исключение: System.FormatException: "Input string was not in a correct format." как исправить

12.04.2022, 22:21. Показов 9298. Ответов 23
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В файл так записал данные

3
6 8
4 6 8
6
ошибка возникает при вызове метода, но не везде тот же самый метод в одном случае работает исправно
P.S: Я чайник так что можно подробно и понятно пожалуйста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
using System;
using System.Linq;
using System.IO;
using System.Text;
 
//Создать абстрактный класс Figure с методами вычисления площади и периметра, а также методом, выводящим информацию о фигуре на экран.
abstract class Figure
{
        public abstract string Name();
        public abstract double Area();
        public abstract double Perimeter();
        public abstract void ShowInfo();
    }
 
    //Создать производные классы: Rectangle (прямоугольник) со своими методами вычисления площади и периметра.
    class Rectangle : Figure
{
 
     int a, b;
     readonly string name = "rectangle";
     public override string Name()
    {
        return name;
    }
 
    public Rectangle(int a, int b)
    {
        this.a = a;
        this.b = b;
    }
 
    public override double Area() 
    {
        return a * b; 
    }
 
    public override double Perimeter() { return (a + b) * 2; }
 
    public override void ShowInfo()
    {
        Console.WriteLine("Прямоугольник со сторонами {0} и {1}", a, b);
    }
}
 
//Создать производные классы: Triangle (треугольник) со своими методами вычисления площади и периметра.
class Triangle : Figure
{
    int a, b, c;
    readonly string name = "triangle";
    public override string Name()
    {
        return name;
    }
    public Triangle(int a, int b, int c)
    {
        this.a = a;
        this.c = c;
        this.b = b;
    }
 
    public override double Perimeter() { return a + b + c; }
 
 
    public override double Area()
    {
        double p = Perimeter() / 2;
        return Math.Sqrt(p * (p - a) * (p - b) * (p - c));
    }
 
    public override void ShowInfo()
    {
        Console.WriteLine("Треугольник со сторонами {0}, {1}, {2}", a, b, c);
    }
}
 
//Создать производные классы: Circle (круг), со своими методами вычисления площади и периметра.
class Circle : Figure
{
    readonly string name = "circle";
    public override string Name()
    {
        return name;
    }
    const double pi = 3.14;
 
    int r;
 
    public Circle(int r) { this.r = r; }
 
    public override double Area() { return pi * r * r; }
 
    public override double Perimeter() { return 2 * pi * r; }
 
    public override void ShowInfo()
    {
        Console.WriteLine("Круг радиусом {0}.", r);
    }
}
public static class Program
{
    static private Figure[] Input() //читаем данные из файла
    {
        using (StreamReader fileIn = new StreamReader("input.txt"))
        {
            int n = int.Parse(fileIn.ReadLine());
            Figure[] ar = new Figure[n];
            for (int i = 0; i < n; i++)
            {
                string[] text = fileIn.ReadLine().Split(' ');
                if (text.Length == 2)
                {
                     ar[i] = new Rectangle(int.Parse(text[0]),
                    int.Parse(text[1]));
                }
                else
                {
                    if (text.Length == 3)
                    {
                        ar[i] = new Triangle(int.Parse(text[0]),
                        int.Parse(text[1]),
                        int.Parse(text[2]));
                    }
                    else
                    {
                        if (text.Length == 1)
                        {
                            ar[i] = new Circle(int.Parse(text[0]));
                            
                        }
                        
                    }
                }
            }
            return ar;
        }
    }
    static void Print(Figure[] array) //выводим данные на экран
    {
        foreach (Figure item in array)
        {
            item.ShowInfo();
            switch (item.Name())
            {
                case "rectangle":
                    Console.WriteLine("Площадь прямоугольника равна { 0:f2}", item.Area()); //вот здесь возникает ошибка 
                    Console.WriteLine("Периметр прямоугольника равн { 0:f2}", item.Perimeter()); //вот здесь возникает ошибка 
                    break;
                case "triangle":
                    Console.WriteLine("Площадь треугольника равна  {0:f2}", item.Area()); // а здесь работает нормально
                    Console.WriteLine("Периметр треугольника равн { 0:f2}", item.Perimeter()); //вот здесь возникает ошибка 
                    break;
                case "circle":
                    Console.WriteLine("Площадь круга равна  { 0:f2} ", item.Area()); //вот здесь возникает ошибка 
                    Console.WriteLine("Периметр круга равн { 0:f2}", item.Perimeter()); //вот здесь возникает ошибка 
                    break;
            }
            Console.WriteLine();
        }
    }
 
    private static void Main()
    {
        Figure[] array = Input();
        Print(array);
        Console.ReadKey();
    }
}
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
12.04.2022, 22:21
Ответы с готовыми решениями:

Ошибка System.FormatException: Input string was not in a correct format
Разбираю пример из Шилдта, но он у меня почему-то не компиллируется: выдает ошибку System.FormatException: Input string was not in a...

Ошибка System.FormatException:"Input string was not in a correct format."
Помогите пожалуйста решить эту проблему, вроде все правильно Но на этом моменте ...

Ошибка System.FormatException: "Input string was not in a correct format."
Добрый день, не знаю, как исправить ошибку, столкнулся с ней при написании кода для решения задачи https://i.imgur .com/YqeVcBd.png(убрать...

23
Эксперт .NET
 Аватар для Usaga
14817 / 9593 / 1369
Регистрация: 21.01.2016
Сообщений: 36,136
14.05.2022, 05:03
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от Raccoon_Rocket Посмотреть сообщение
public int price;//цена
Для цен принято использовать тип данных decimal. Это если, конечно, не в копейках цену исчисляете)

Цитата Сообщение от Raccoon_Rocket Посмотреть сообщение
public int current_date = 2022;// текущая дата
int? А тип DateTime для дат уже не подходит? И почему прописан 2022-й год? В 2023-м оно как работать должно?
0
0 / 0 / 0
Регистрация: 30.11.2021
Сообщений: 67
14.05.2022, 07:58  [ТС]
public int current_date = 2022;// строчка неважна я её убрал потом
я не понимаю как задание сделать
0
bite
 Аватар для I can
5009 / 4826 / 852
Регистрация: 13.04.2015
Сообщений: 10,106
14.05.2022, 09:28
Raccoon_Rocket, ты заведи новую тему, а то в этой уже третий вопрос. Иначе тут тебе еще и на первый, и на второй вопрос будут отвечать.
0
0 / 0 / 0
Регистрация: 30.11.2021
Сообщений: 67
14.05.2022, 09:29  [ТС]
Хорошо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
14.05.2022, 09:29

System.FormatException: "Input string was not in a correct format."
Найдите ошибку в коде, а то 20 минут чешу репу, понять всё не могу( После запуска кода, выдаёт ошибку в 26 строке. using System; ...

System.FormatException: "Input string was not in a correct format."
Преобразовываю массив string в массив int. У меня не работает, хотя делал идентичное задание на другом PC и там всё работало. ...

Получение данных из combobox, ошибка System.FormatException: "Input string was not in a correct format."
Добрый день! Делаю первые шаги в освоении C#, поэтому не судите строго. Пытаюсь создать примитивный магазин. Есть combobox, варианты...

Ошибка: System.FormatException: "Input string was not in a correct format."
Помогите когда в компиляторе ввожу 3 после: if (page == 1) { Console.WriteLine(); ...

System.FormatException: "Input string was not in a correct format."
Сделайте пожалуйста что бы выводило текст из файла Students.txt в ListBox. Вот моя ошибка: А также вот Архив с прогой(txt файл идет...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С. Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию? Фраза «Любая достаточно развитая технология неотличима от магии». . .
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль? Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология. «Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
Генератор паролей (вариант №2)
Maks 30.10.2026
Обновленная версия ранее созданной обработки. Добавлены следующие реквизиты типа Булево: - Буквы; - Цифры; - Символы. Изменена логика команды "Сгенерировать" и процедуры "ПриОткрытии":. . .
Генератор паролей (вариант №1)
Maks 29.10.2026
Реализация из решения ниже выполнена исключительно по моей инициативе, дабы облегчить себе работу в создании паролей для администрируемых мною сервисов и пользователей. Самым главным критерием для. . .
Установка ChatGPT (Codex) на Windows без использования Microsoft Store
Fabien159 28.10.2026
Здравствуйте всем читающим! Опишу процесс установки ChatGPT (Codex) на Windows, если по каким-то причинам у вас не получается устанавить его через Microsoft Store. И так: 1. Скачиваем с. . .
Программное добавление префикса в нумерацию документов
Maks 27.10.2026
Реализация из решения ниже выполнена в самописной конфигурации на БСП (помощь начинающему коллеге). Задача: Программно добавить префикс в нумерацию документов. Решение: В модуле объекта. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru