Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
1 / 1 / 0
Регистрация: 30.12.2016
Сообщений: 53

Не могу понять в чем ошибка

23.04.2019, 09:30. Показов 962. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пытаюсь выполнить действия в структуре,пишет,что :Ошибка CS0029 Не удается неявно преобразовать тип "int" в "string".
Хотя я делаю преобразование ,но все равно не помогает.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
students.Add(new Student
                {
                    Surname = lines[i++],
                    Name = lines[i++],
                    Patronymic = lines[i++],
                    Sex = lines[i++],
                    Faculty = lines[i++],
                    Course = lines[i++],
                    Group = lines[i++],
                    _Math = int.Parse((lines[i++])),
                    History = int.Parse((lines[i++])),
                    IT = int.Parse((lines[i++])),
                    Literature = int.Parse((lines[i++])),
                    Chemistry = int.Parse((lines[i++])),
                });
            }
        }
 
 
        public void Print()
        {
            students.Sort((a, b) => (a._Math < 3 || a.History < 3 || a.IT < 3 || a.Literature < 3 || a.Chemistry < 3).CompareTo(b._Math < 3 || b.History < 3 || b.IT < 3 || b.Literature < 3 || b.Chemistry < 3));
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.04.2019, 09:30
Ответы с готовыми решениями:

Не могу понять в чем ошибка.
Написал программу(но она не хочет почему-то работать)подскажите где ошибка у меня. Для каждого типа транспортного средства – количество...

Не могу понять в чем ошибка
Задали написать Д.З. когда добавил код с Icompare, стали выдавать ошибки using System; using System.Collections; namespace ТС { ...

Не могу понять в чём ошибка
Описать класс, представляющий треугольник. Предусмотреть методы для создания объектов, перемещения на плоскости, изменения размеров и...

17
 Аватар для samana
2639 / 1567 / 853
Регистрация: 23.02.2019
Сообщений: 3,876
23.04.2019, 09:45
На какой строке ошибка? Неизвестно, что находится в массиве lines, значение из которого вы присваиваете первой половине свойств/полей.
0
1 / 1 / 0
Регистрация: 30.12.2016
Сообщений: 53
23.04.2019, 09:47  [ТС]
Полная программа :
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;
namespace Csh_console_tasks
{
    [Serializable]
    struct Student
    {
        public string Surname { get; set; }
        public string Name { get; set; }
        public string Patronymic { get; set; }
        public string Sex { get; set; }
        public string Faculty { get; set; }
        public string Course { get; set; }
        public string Group { get; set; }
 
        public string _Math { get; set; }
        public string History { get; set; }
        public string IT { get; set; }
        public string Literature { get; set; }
        public string Chemistry { get; set; }       
    }
    
    class Students
    {
        List<Student> students;
        string filename;
        public Students(string file)
        {
            if (!File.Exists(file))
            {
                throw new FileNotFoundException();
            }
            filename = file;
            students = new List<Student>();
            LoadFile();
        }
        
        private void LoadFile()
        {
            string[] lines = File.ReadAllLines(@filename);
            for (int i = 0; i < lines.Length; i++)
            {
                students.Add(new Student
                {
                    Surname = lines[i++],
                    Name = lines[i++],
                    Patronymic = lines[i++],
                    Sex = lines[i++],
                    Faculty = lines[i++],
                    Course = lines[i++],
                    Group = lines[i++],
                    _Math = int.Parse((lines[i++])),
                    History = int.Parse((lines[i++])),
                    IT = int.Parse((lines[i++])),
                    Literature = int.Parse((lines[i++])),
                    Chemistry = int.Parse((lines[i++])),
                });
            }
        }
 
        
        public void Print()
        {
           students.Sort((a, b) => (a._Math < 3 || a.History < 3 || a.IT < 3 || a.Literature < 3 || a.Chemistry < 3).CompareTo(b._Math < 3 || b.History < 3 || b.IT < 3 || b.Literature < 3 || b.Chemistry < 3));
 
 
 
 
            foreach (Student st in students)
            {               
                Console.WriteLine("*****************************");                
                Console.Write("{0} {1} {2}", st.Surname, st.Name, st.Patronymic);
                Console.WriteLine();
                Console.Write("Пол: {0}", st.Sex);
                Console.WriteLine();
                Console.Write("факультет: {0}, ", st.Faculty);
                Console.Write("курс: {0}, ", st.Course);
                Console.Write("группа: {0},", st.Group);
                Console.WriteLine();
                Console.WriteLine("Отметки по:");
                Console.WriteLine("Матиматике: {0}", st._Math);
                Console.WriteLine("Истории: {0}", st.History);
                Console.WriteLine("Информатика: {0}", st.IT);
                Console.WriteLine("Литература: {0}", st.Literature);
                Console.WriteLine("Химия: {0}", st.Chemistry);
                Console.WriteLine();
            }
            
        }
    }
 
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                Students st = new Students("students.txt");
                st.Print();
            }
            catch (FileNotFoundException ob)
            {
                Console.WriteLine(ob.Message);
            }
            Console.ReadKey();
        }
    }
}
Ошибку выдаёт в этом месте:
C#
1
2
3
4
5
_Math = int.Parse((lines[i++])),
                    History = int.Parse((lines[i++])),
                    IT = int.Parse((lines[i++])),
                    Literature = int.Parse((lines[i++])),
                    Chemistry = int.Parse((lines[i++])),
0
 Аватар для Toros1992
899 / 554 / 275
Регистрация: 26.11.2015
Сообщений: 1,758
Записей в блоге: 2
23.04.2019, 09:59
Ну так у вас все эти поля имеют тип string. А вы зачем то туда пытаетесь int засунуть
0
 Аватар для samana
2639 / 1567 / 853
Регистрация: 23.02.2019
Сообщений: 3,876
23.04.2019, 10:01
Смотрите, все свойства студента имеют одинаковый тип string. А вы пытаетесь назначить этим свойствам тип int, зачем?
Тогда сделайте нужные свойства, вот эти
Кликните здесь для просмотра всего текста
public string _Math { get; set; }
public string History { get; set; }
public string IT { get; set; }
public string Literature { get; set; }
public string Chemistry { get; set;

не string, а int и всё заработает.
Либо не парсите их в число.
0
454 / 278 / 163
Регистрация: 17.04.2019
Сообщений: 1,637
23.04.2019, 10:05
samana, парсить в число там нужно в любом случае, потому что у ТС-а дальше по коду идет сортировка по этим данным.
1
 Аватар для samana
2639 / 1567 / 853
Регистрация: 23.02.2019
Сообщений: 3,876
23.04.2019, 10:08
ProgItEasy, спасибо, я просто код дальше и не смотрел, когда увидел в начале проблемную часть.
0
1 / 1 / 0
Регистрация: 30.12.2016
Сообщений: 53
23.04.2019, 10:19  [ТС]
System.FormatException: "Входная строка имела неверный формат.-поменял на string на int все равно не помогает.
0
454 / 278 / 163
Регистрация: 17.04.2019
Сообщений: 1,637
23.04.2019, 11:08
Программист-228, скидывайте весь код, который получился. И на какой строке показывает ошибку?
0
1 / 1 / 0
Регистрация: 30.12.2016
Сообщений: 53
23.04.2019, 11:19  [ТС]
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.IO;
namespace Csh_console_tasks
{
    struct Student
    {
        public string Surname { get; set; }
        public string Name { get; set; }
        public string Patronymic { get; set; }
        public string Sex { get; set; }
        public string Faculty { get; set; }
        public string Course { get; set; }
        public string Group { get; set; }
 
        public int _Math { get; set; }
        public int History { get; set; }
        public int IT { get; set; }
        public int Literature { get; set; }
        public int Chemistry { get; set; }       
    }
    
    class Students
    {
        List<Student> students;
        string filename;
        public Students(string file)
        {
            if (!File.Exists(file))
            {
                throw new FileNotFoundException();
            }
            filename = file;
            students = new List<Student>();
            LoadFile();
        }
        
        private void LoadFile()
        {
            string[] lines = File.ReadAllLines(@filename);
            for (int i = 0; i < lines.Length; i++)
            {
                students.Add(new Student
                {
                    Surname = lines[i++],
                    Name = lines[i++],
                    Patronymic = lines[i++],
                    Sex = lines[i++],
                    Faculty = lines[i++],
                    Course = lines[i++],
                    Group = lines[i++],
                    _Math = int.Parse((lines[i++])),
                    History = int.Parse((lines[i++])),
                    IT = int.Parse((lines[i++])),
                    Literature = int.Parse((lines[i++])),
                    Chemistry = int.Parse((lines[i++])),
                });
            }
        }
 
        
        public void Print()
        {
           
 
 
            foreach (Student st in students)
            {               
                Console.WriteLine("*****************************");                
                Console.Write("{0} {1} {2}", st.Surname, st.Name, st.Patronymic);
                Console.WriteLine();
                Console.Write("Пол: {0}", st.Sex);
                Console.WriteLine();
                Console.Write("факультет: {0}, ", st.Faculty);
                Console.Write("курс: {0}, ", st.Course);
                Console.Write("группа: {0},", st.Group);
                Console.WriteLine();
                Console.WriteLine("Отметки по:");
                Console.WriteLine("Матиматике: {0}", st._Math);
                Console.WriteLine("Истории: {0}", st.History);
                Console.WriteLine("Информатика: {0}", st.IT);
                Console.WriteLine("Литература: {0}", st.Literature);
                Console.WriteLine("Химия: {0}", st.Chemistry);
                Console.WriteLine();
            }
            
        }
    }
 
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                Students st = new Students("students.txt");
                st.Print();
            }
            catch (FileNotFoundException ob)
            {
                Console.WriteLine(ob.Message);
            }
            Console.ReadKey();
        }
    }
}
Входная строка имела неверный формат
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 students.Add(new Student
                {
                    Surname = lines[i++],
                    Name = lines[i++],
                    Patronymic = lines[i++],
                    Sex = lines[i++],
                    Faculty = lines[i++],
                    Course = lines[i++],
                    Group = lines[i++],
                    _Math = int.Parse((lines[i++])),
                    History = int.Parse((lines[i++])),
                    IT = int.Parse((lines[i++])),
                    Literature = int.Parse((lines[i++])),
                    Chemistry = int.Parse((lines[i++])),
                });
0
1 / 1 / 0
Регистрация: 30.12.2016
Сообщений: 53
23.04.2019, 11:19  [ТС]
Вот txt файл который я использую.
Вложения
Тип файла: txt students.txt (740 байт, 1 просмотров)
0
1 / 1 / 0
Регистрация: 30.12.2016
Сообщений: 53
23.04.2019, 11:56  [ТС]
Как я понял,всё дело именно в txt файле ,но я сверяю со структурой ,вроде все должно работать...
0
Эксперт .NET
 Аватар для Usaga
14299 / 9384 / 1353
Регистрация: 21.01.2016
Сообщений: 35,380
23.04.2019, 11:58
Программист-228, сообщение об ошибке говорит, что где-то ожидается число, но передаётся что-то на число слабо похожее.

Вы можете воспользоваться отладчиком (debugger), чтобы посмотреть где это происходит и почему.
0
 Аватар для samana
2639 / 1567 / 853
Регистрация: 23.02.2019
Сообщений: 3,876
23.04.2019, 11:59
У вас некорректная загрузка, точнее присвоение значений студентам. В txt ведь присутствуют пустые строки/разделители.
0
1 / 1 / 0
Регистрация: 30.12.2016
Сообщений: 53
23.04.2019, 12:09  [ТС]
Как я понимаю мне нужно сейчас редактировать значение студентов или подгонять txt файл под эту форму структуры?

Добавлено через 2 минуты
Я так и не понял где конкретно редактировать
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
students.Add(new Student
                {
                    Surname = lines[i++],
                    Name = lines[i++],
                    Patronymic = lines[i++],
                    Sex = lines[i++],
                    Faculty = lines[i++],
                    Course = lines[i++],
                    Group = lines[i++],
                    _Math = int.Parse((lines[i++])),
                    History = int.Parse((lines[i++])),
                    IT = int.Parse((lines[i++])),
                    Literature = int.Parse((lines[i++])),
                    Chemistry = int.Parse((lines[i++])),
                });
Добавлено через 3 минуты
А как мне объяснить структуре ,что там есть пустая строка ,думаю Console.WriteLine(); -тут не пройдёт
0
 Аватар для samana
2639 / 1567 / 853
Регистрация: 23.02.2019
Сообщений: 3,876
23.04.2019, 12:14
Ещё txt файл имеет разное кол-во свойств для каждого студента. В начале всё правильно по 12, потом Пономарёв имеет уже 13 свойств, Кузнецова 11 свойств ... Конечно будут ошибки, нужно чтобы было у всех одинаково.
0
1 / 1 / 0
Регистрация: 30.12.2016
Сообщений: 53
23.04.2019, 12:15  [ТС]
Скорее всего ошибка,в загрузке когда начинаю пользоваться отладчиком ,он копируют сразу всю загрузку.
0
 Аватар для samana
2639 / 1567 / 853
Регистрация: 23.02.2019
Сообщений: 3,876
23.04.2019, 12:19
Если вы исправите txt файл, чтобы у всех было по 12 свойств, тогда код загрузки ниже, сработает нормально
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
private void LoadFile()
{
    string[] lines = File.ReadAllLines(@filename);
 
    for (int i = 0; i < lines.Length; i++)
    {
        if (string.IsNullOrWhiteSpace(lines[i])) continue; // если строка пустая, то переходим на след. итерацию
 
        students.Add(new Student
        {
            Surname = lines[i++],
            Name = lines[i++],
            Patronymic = lines[i++],
            Sex = lines[i++],
            Faculty = lines[i++],
            Course = lines[i++],
            Group = lines[i++],
            _Math = int.Parse((lines[i++])),
            History = int.Parse((lines[i++])),
            IT = int.Parse((lines[i++])),
            Literature = int.Parse((lines[i++])),
            Chemistry = int.Parse((lines[i++])),
        });
    }
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.04.2019, 12:19
Помогаю со студенческими работами здесь

Не могу понять, в чем ошибка в цикле?
Есть цикл (a,b и h - тоже double): for (double i = a; i &lt;= b; i += h) { Console.WriteLine(&quot;{0}&quot;,i); ...

В чем здесь ошибка понять не могу
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using...

Не находит Point. CS0246. Не могу понять в чем ошибка
Задача на проверку треугольника. using System; using System.Collections.Generic; using System.Linq; using System.Text; ...

Не могу понять в чем ошибка
Суть кода такая, что он должен считать файл построчно, а потом вывести каждую 5 строку, но вместо этого он выкидывает просто пустые...

Не могу понять в чем ошибка
Здрасте!!! Тока начал изучать язык php. Изучал по урокам Попова, но зашел в тупик. Установил denwer, выложил свои данные в базу данных....


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

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru