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

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

09.11.2023, 00:51. Показов 461. Ответов 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
Ответ Создать тему

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Новые блоги и статьи
Контейнеризация ML моделей с помощью Docker и Kubernetes
Mr. Docker 14.03.2025
Перенос ML-моделей из лаборатории в продакшн сопровождается целым комплексом проблем. Нередко код, который отлично работает на локальной машине, отказывается функционировать в промышленной среде. . . .
Организация масштабируемого хранилища с Apache Cassandra
Codd 14.03.2025
Изначально разработанная в Facebook, а затем переданная Apache Software Foundation, Cassandra сочетает в себе принципы Amazon's Dynamo и Google's BigTable. Эта комбинация создает уникальную. . .
Kafka или Pulsar: Что лучше для потоковой обработки в Java
Javaican 14.03.2025
Среди множества решений для потоковой обработки данных Apache Kafka долгое время удерживала лидирующие позиции, став де-факто стандартом в индустрии. Однако в последние годы всё больше внимания. . .
Создание и использование компонентов в Vue 3
Reangularity 14.03.2025
Компонент в Vue - это автономный блок интерфейса, который содержит собственную разметку, логику и стили. Представьте себе кнопку, форму ввода или даже целую панель навигации - всё это можно оформить. . .
Vue 3: Создаем современное веб-приложение с Composition API
Reangularity 14.03.2025
В фронтенд-разработке Vue 3 выделяется своим прагматичным подходом. В отличие от React с его минималистичной философией "всё — JavaScript" или Angular с его всеобъемлющим корпоративным подходом, Vue. . .
Разработка контекстных меню в iOS
mobDevWorks 14.03.2025
С приходом iOS 13 Apple представила новый API для контекстных меню, который полностью заменил предыдущую технологию 3D Touch peek & pop. Хотя многие разработчики и пользователи испытывают ностальгию. . .
Лучшие практики оптимизации 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 (см. скриншот)
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru
Выделить код Копировать код Сохранить код Нормальный размер Увеличенный размер