Работа с файлом. Выдаёт исключение 0xC0000005

Рейтинг: 0Ответов: 0Опубликовано: 15.03.2023

"Вызвано исключение по адресу 0x00007FF71866BB15 в Files.exe: 0xC0000005: нарушение прав доступа при чтении по адресу 0xFFFFFFFFFFFFFFFF."

#include <fstream>
#include <iostream>
#include <string>
#include <vector>
using namespace std;

class Person
{
private:
    string name;
    int age;
    int spec;
public:
    Person()
    {
        name = "";
        age = 0;
        spec = 0;
    }
    Person(string name, int age, int spec)
    {
        this->name = name;
        this->age = age;
        this->spec = spec;
    }
    void Print()
    {
        cout << "Name: " << name << "\tAge: " << age << "\tSpecialisation:" << spec << endl;
    }
};
int main()
{
    vector <Person> vect_of_person;
    for (size_t i = 0; i < 2; i++)
    {
        int age = 0, spec = 0;
        string name = "";
        cout << "Enter name: ";
        cin >> name;
        cout << "Enter age: ";
        cin >> age;
        cout << "Enter spec: ";
        cin >> spec;
        vect_of_person.push_back(Person(name, age, spec));
    }
    std::string line = "MyTXTFile.txt";
    std::fstream out2(line, fstream::in | fstream::out| fstream::app);
    if (out2.is_open())
    {
        cout << "File is open" << std::endl;
        for (size_t i = 0; i < vect_of_person.size(); i++)
        {
            out2.write((char*)&vect_of_person[i], sizeof(Person));

        }
    }
    else
        cout << "File is closed!" << endl;
   out2.close();
    ifstream fin(line);
    if (fin.is_open())
    {
        Person read;
        cout << "File is open" << endl;
        while (fin.read((char*)&read, sizeof(Person)))
        {      
             read.Print();
        }
    }
    else
    {
        cout << "File is closed!" << endl;
    }
    
    fin.close();   
}

Код создан для добавления объектов класса Person в ТХТ файл, потом выводит все данные из файла, которые там уже были + те, что я добавил. В отладчике смотрел, ничего не понял.

Я пытался найти ошибку, но это либо "нарушение прав доступа при чтении по адресу", либо "нарушение доступа для чтения". Не могу понять, в чём проблема. Знатоки, помогите

Ответы

Ответов пока нет.