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

Ошибка при бинарном вводе структуры "вызвано исключение: нарушение доступа для чтения"

09.11.2023, 00:51. Показов 459. Ответов 1

Author24 — интернет-сервис помощи студентам
Всем привет выполнял задание связанное с созданием структур , их записи в файл , вывода из файла(на этом моменте и застопорился), сортировке и поиске в массиве структур.Когда начал выполнять часть связанную с выводом из файла столкнулся с ошибкой "Вызвано исключение: нарушение доступа для чтения. _Val было 0x146E1122D28.".Путем эксперементов выяснил что ошибка находиться в строке 101(ошибка в while где то).Так же я понял что если файл будет пустым то все работает отлично, и еще заметил что не работает код поле выхода из else в void out().Сам я новичек в c++ ,но задания выполнить нужно , если кто то занет в чем ошибка , помогите пожалуйста.Приложил скрин ошибки , что находится в консоли и в файле на момент выполнения программы.
Так же приложу само задание для понятности:
Лабораторная работа 5 «Работа со структурами»
Задание. Написать программу, которая записывает с клавиатуры в файл структуру согласно выданному варианту задания. В качестве разделителя полей структуры использовать символ табуляции. В программе реализовать:
а) дополнение существующего массива структур новыми структурами. Массив структур записывается в файл после добавления.
б) при повторном запуске программы в массив структур записываются ранее сохраненные структуры из файла.
в) поиск структуры с заданным значением выбранного элемента.
г) вывод на экран содержимого массива структур.
д) сортировка массива структур по заданному полю (элементу), например государство по численности.
е) интерфейс программы должен предоставлять пользователю выбор желаемой функции (добавление новой структуры, вывод на экран массива структур, поиск в массиве структур, сортировка массива структур).
«Футбольная команда»: название, город, количество сыгранных игр, количество очков (проигрыши, выигрыши, ничьи), количество игроков, фамилия тренера

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
#include <iostream>
#include <string>
#include <stdio.h>
#include <fstream>
 
#pragma warning(disable : 4996)
 
using namespace std;
 
string path = "struct.txt";
 
 
int proverka_in() {
    string s;
    int in;
    getline(cin, s);
    while (sscanf(s.c_str(), "%d", &in) != 1 or in < 1 or in > 4) {
        getline(cin, s);
 
    }
    return in;
}
 
 
 
    
struct football_team
{
    string name;
    string city;
    int kolvo_igr;
    int win; int lose; int draw; int points;
    int kolvo_players;
    string surname;
    string input()
    {
        cout << "Название команды: "; cin >> name;
        cout << "Город команды: "; cin >> city;
        cout << "Количество игр команды: "; cin >> kolvo_igr;
        cout << "Количество победных матчей: "; cin >> win;
        cout << "Количество проигранных матчей: "; cin >> lose;
        cout << "Количество матчей с ничьей: "; cin >> draw;
        cout << "Количество игроков команды: "; cin >> kolvo_players;
        cout << "Фамилия тренера команды: "; cin >> surname;
        points = 3 * win + draw;
        return name, city, kolvo_igr, points, kolvo_players, surname;
    }
    void print() 
    {
        cout << "Название команды: " << name << "\nГород: " << city << "\tКоличество игр: " << kolvo_igr << "\tОчки команды: " << points
            << "\tКоличество игроков: " << kolvo_players << "\tФамилия тренера команды: " << surname<<endl;
    }
 
};
 
void print_menu()
{
    system("cls");//очистка экрана
    cout << "Выберите желаемое действие:" << endl;
    cout << "1. Добавление новой структуры" << endl;
    cout << "2. Вывод на экран массива структур" << endl;
    cout << "3. Поиск в массиве структур" << endl;
    cout << "4. Сортировка массива структур" << endl;
    cout << ">";
    
}
 
void add_new()
{
    football_team team;
    team.input();
    ofstream file_in;
    file_in.open(path, ofstream::app);
 
    if (!file_in.is_open())
    {
        cout << "Ошибка открытия файла!" << endl;
    }
    else
    {
        cout << "Файл открыт успешно!" << endl;
        file_in.write((char*)&team, sizeof(football_team));
    }
    file_in.close();
 
}
 
void out()
{
    ifstream file_out;
    file_out.open(path);
 
    if (!file_out.is_open())
    {
        cout << "Ошибка открытия файла!" << endl;
    }
    else
    {
        cout << "Файл открыт успешно!" << endl;
        football_team pp;
        while (file_out.read((char*)&pp, sizeof(football_team)))
        {
            pp.print();
        }
        cout << "asd";
    }
    cout << "asd";
    file_out.close();
}
 
void search()
{
 
}
 
void sort()
{
 
}
 
 
int main() 
{
    system("chcp 1251");
    out();
}
Миниатюры
Ошибка при бинарном вводе структуры "вызвано исключение: нарушение доступа для чтения"   Ошибка при бинарном вводе структуры "вызвано исключение: нарушение доступа для чтения"   Ошибка при бинарном вводе структуры "вызвано исключение: нарушение доступа для чтения"  

0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.11.2023, 00:51
Ответы с готовыми решениями:

Ошибка в коде: “Вызвано исключение: нарушение доступа для чтения.”
Здравствуйте!Ошибку выдает в 51 строке:&quot;вызвано исключение: нарушение доступа для чтения.gg было 0x16B4112.&quot; Вот сам код: #include...

Ошибка Вызвано исключение: нарушение доступа для чтения. first было nullptr
При запуске появляется ошибка &quot;Вызвано исключение: нарушение доступа для чтения. first было nullptr&quot;. #include &lt;iostream&gt; ...

Ошибка:Вызвано исключение: нарушение доступа для чтения. P было nullptr
Дана таблица смежности графа. На её основании построить список смежности, список инцедентности и таблицу инцедентности #include...

1
Вездепух
Эксперт CЭксперт С++
 Аватар для TheCalligrapher
12860 / 6725 / 1807
Регистрация: 18.10.2014
Сообщений: 17,025
09.11.2023, 05:45 2
Цитата Сообщение от Tenskay Посмотреть сообщение
file_in.write((char*)&team, sizeof(football_team));
Цитата Сообщение от Tenskay Посмотреть сообщение
file_out.read((char*)&pp, sizeof(football_team))
Распространенные ошибки
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.11.2023, 05:45
Помогаю со студенческими работами здесь

Ошибка при вводе массива: "Вызвано исключение: нарушение доступа для записи"
Здравствуйте, имеется вот такая программа, при вводе третьего массива(Массив B) выкидывает ошибку &quot;Вызвано исключение: нарушение...

Выскакивает ошибка: Вызвано исключение: нарушение доступа для чтения. c было 0x1D83F5A
Привет всем. Дали задание: ввести из файла в массив элементы, кол-во задается пользователем, затем отсортировать их методом подсчета. Блок...

Ошибка: Вызвано исключение: нарушение доступа для чтения. print было nullptr
Здравствуйте, практикуясь с задание по односвязному списку застрял на непонятной для меня ошибки на этапе отладки. Несколько часов уже...

Вызвано исключение: нарушение доступа для чтения
Всем привет! Дана задача: Разработать функцию, которая удаляет узел списка L2, расположенный перед узлом, содержащим...

Вызвано исключение: нарушение доступа для чтения
Всем доброе утро, нужна срочная помощь. Суть задачи в том, что вводится поле 10*10 из нулей и единиц, мы заменяем все единицы на F. ...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Новые блоги и статьи
Лучшие практики оптимизации Docker Image
Mr. Docker 13.03.2025
Размер Docker-образа влияет на множество аспектов работы с контейнерами. Чем больше образ, тем дольше его загрузка в реестр и выгрузка из него. Для команд разработки, работающих с CI/ CD пайплайнами,. . .
Вопросы на собеседовании по Docker
Mr. Docker 13.03.2025
Ты сидишь напротив технического специалиста, и вдруг звучит вопрос про Docker Swarm или многоэтапные сборки. Пот на лбу? Не переживай, после этой статьи ты будешь готов ко всему! Эта статья будет. . .
Поиск текста в сносках : замена дефиса на тире или тире на дефис...
РоΜа 13.03.2025
Нужно было найти текст в сносках и заменить. Почему-то метод селекшн не сработал. . . пришлось гуглить. найденный на форумвба код пришлось править. Смысл - заменяет в сносках дефисы и тире на нужные. . . .
Real PATH definitions in bash scripts
jigi33 13.03.2025
Как поймать путь и путь к директории относительно запускаемого файла в BASH 1. поймать путь через вывод $(pwd) 2. более правильно - на основе realpath (см. скриншот)
Django или Flask: что выбрать для веб-разработки на Python
py-thonny 13.03.2025
Django – это высокоуровневый фреймворк, который придерживается философии "всё включено". Он предоставляет разработчику готовые решения для большинства типичных задач веб-разработки: от аутентификации. . .
Непрерывное развертывание в Java с Kubernetes
Javaican 13.03.2025
Чем так привлекателен Kubernetes для развертывания Java-приложений? Этот оркестратор контейнеров позволяет автоматизировать развертывание, масштабирование и управление контейнеризированными. . .
Предотвращение XSS, CSRF и SQL-инъекций в JavaScript
run.dev 13.03.2025
JavaScript занимает первые позиции среди языков веб-разработки, но его распространенность делает его привлекательной целью для злоумышленников. Межсайтовый скриптинг (XSS), межсайтовая подделка. . .
PHP 8: JIT-компиляция и улучшение производительно­сти
Jason-Webb 13.03.2025
PHP никогда не славился своей скоростью. Многие сталкивались с проблемами производительности при работе со сложными вычислениями или обработкой больших объемов данных. Традиционная модель выполнения. . .
Сериализация данных с Apache Avro в Kafka
Javaican 12.03.2025
Apache Kafka стала одним из ключевых решений для работы с большими потоками данных. Однако с ростом объемов передаваемых данных возникает проблема: как эффективно сериализовать и десериализовать. . .
Создание потребителей Kafka с помощью Reactor Kafka
Javaican 12.03.2025
Reactor Kafka — это библиотека, объединяющая Apache Kafka с реактивным программированием на базе Project Reactor. Такое сочетание позволяет строить неблокирующие, асинхронные приложения с контролем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru