Форум программистов, компьютерный форум, киберфорум
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. Показов 9061. Ответов 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
14577 / 9479 / 1360
Регистрация: 21.01.2016
Сообщений: 35,759
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
dive
 Аватар для I can
5001 / 4765 / 851
Регистрация: 13.04.2015
Сообщений: 10,013
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
Ответ Создать тему
Новые блоги и статьи
Из невошедшего на форум (диалог с ИИ-гугла)
zorxor 29.07.2026
А вот, что интересно, сказал мне ИИ-гугла: Этот текст — эмоциональный пост пользователя под ником zorxor на интернет-форуме (вероятно, посвященном мистике, непознанному или альтернативной науке). . . .
Был праздник вчера, а я и не знал.
kumehtar 28.07.2026
27. 07. 2026г. Intel Core 2 Duo исполнилось 20 лет Новости компьютерного мира и их обсуждение (4) Салют, шампанское, овации! :drink:
Нейтральные знания, чистый код - бла-бла-бла-бла, на самом деле кликбейт и самореклама, плагиат, и вот почему
Hrethgir 27.07.2026
То-есть отклонение такой публикации говорит само за себя, и пусть только возьмут на вооружение после отклонения публикации - это будет чистейшим актом плагиата. Отклонял Хабр. Дословно, отклонённая. . .
тв 16 бой ии
anaschu 27.07.2026
Великий Перелом ИИ: Как уравнения ОДУ Radau дожали цензурные фильтры Алисы Фиксируем в мемофонде Теории Всего беспрецедентный факт в истории ИИ-зондирования. В затяжном многораундовом. . .
мв 15. непроверенное, возможно, глюк
anaschu 27.07.2026
НАУЧНО-АНАЛИТИЧЕСКИЙ ОТЧЕТ. РАЗДЕЛ 1. 1: «НАУКА» (РАСШИРЕННАЯ СТЕХИОМЕТРИЧЕСКАЯ И ГЕНЕТИЧЕСКАЯ ВЕРСИЯ)Тема: Теоретическое обоснование инвариантности 19-мерного тензорного ядра непрерывных ОДУ и. . .
Очистка реквизитов и табличных частей документа при копировании (вариант 2)
Maks 26.07.2026
Алгоритм из решения ниже разработан на примере нетипового документа "ЗаявкаНаРаботу", разработанного в КА2. Задача: Заменить алгоритм запрета копирования документов для сотрудников с ролью "Стажер",. . .
Доктрина интенционального знания - Доктрина для портала "Срез".
Hrethgir 25.07.2026
Может найдётся кто захочет оценить доктрину. . . Написания правил участия для меня роскошь, требующая лимита времени, поэтому все сообщения не прошедшие модерацию будут видны только участникам портала,. . .
сукцессия 44. Решил подать на припринт в межународные сервисы препринтов. Но нужно одобрение от ученых
anaschu 25.07.2026
Английский вариант. Пока кто то не одобрит мою личность, мне не получиться это опубликовать на препринте. Но заявку на публикацию статьи я сегодня подам.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru