Data archive saving - Process returned -1073741819 <0xC0000005>

0

I'm having some trouble. After coding a full oriented object programming on C++, I'm trying to save the data in a archive, to use it again every single time that the program opens.

In the first line, it is confirmed: "Student Daniel Cassiano has been registered sucessfully." (PT-BR)

cadastroefetuado

Showing the registered datas.

dadosdousuariocadastrado

The program writes on the txt file:

arquivo

But, after that, the program doesn't run anymore.

neveropens

** CODES: ** COMMENTS: 1. The variables that have 2 after their description are auxiliary variables (space). 2. Here is the code, on Github, for a better view: https: //github.com/danielcassiano/Academia_Atletica

Archive opening:

ifstream arquivo;
arquivo.open("academia.txt");

//LEITURA DE ARQUIVO
while(!arquivo.eof()){
        Aluno *p = new Aluno();
        Dados dados = Dados();

        //_____________________________

        arquivo >> Ativo2;
        p->ativo = Ativo2;

        getline(arquivo, nome2);
        p->nome = nome2;

        getline(arquivo, cpf2);
        p->cpf = cpf2;

        getline(arquivo,cidade2);
        p->cidade = cidade2;

        getline(arquivo, endereco2);
        p->endereco = endereco2;

        getline(arquivo, telefone2);
        p->telefone = telefone2;

        //__________________________

        arquivo >> Ano2;

        p->Ano = Ano2;

        arquivo >> AnoOriginal2;

        p->AnoOriginal = AnoOriginal2;

        arquivo >> Mes2;

        p->setMes(Mes2);

        arquivo >> MesOriginal2;

        p->MesOriginal = MesOriginal2;

        arquivo >> Dia2;

        p->Dia = Dia2;

        arquivo >> DiaOriginal2;

        p->DiaOriginal = DiaOriginal2;

        //________________________

        arquivo >> Janeiro2;

        p->Janeiro = Janeiro2;

        arquivo >> Fevereiro2;

        p->Fevereiro = Fevereiro2;

        arquivo >> Marco2;

        p->Marco = Marco2;

        arquivo >> Abril2;

        p->Abril = Abril2;

        arquivo >> Maio2;

        p->Maio = Maio2;

        arquivo >> Junho2;

        p->Junho = Junho2;

        arquivo >> Julho2;

        p->Julho = Julho2;

        arquivo >> Agosto2;

        p->Agosto = Agosto2;

        arquivo >> Setembro2;

        p->Setembro = Setembro2;

        arquivo >> Outubro2;

        p->Outubro = Outubro2;

        arquivo >> Novembro2;

        p->Novembro = Novembro2;

        arquivo >> Dezembro2;

        p->Dezembro = Dezembro2;

        //___________________________ 

        arquivo >> JaneiroPago2;
        p->Janeiro = JaneiroPago2;

        arquivo >> FevereiroPago2;
        p->Fevereiro = FevereiroPago2;

        arquivo >> MarcoPago2;
        p->Marco = MarcoPago2;

        arquivo >> AbrilPago2;
        p->Abril = AbrilPago2;

        arquivo >> MaioPago2;
        p->Maio = MaioPago2;

        arquivo >> JunhoPago2;
        p->Junho = JunhoPago2;

        arquivo >> JulhoPago2;
        p->Julho = JulhoPago2;

        arquivo >> AgostoPago2;
        p->Agosto = AgostoPago2;

        arquivo >> SetembroPago2;
        p->Setembro = SetembroPago2;

        arquivo >> OutubroPago2;
        p->Outubro = OutubroPago2;

        arquivo >> NovembroPago2;
        p->Novembro = NovembroPago2;

        arquivo >> DezembroPago2;
        p->Dezembro = DezembroPago2;

        //_____________________________

        manager->alunos.push_back(p); //*alunos* is a vector
    }
arquivo.close();

Archive closing:

case 8:{//When the program closes:
            fstream arquivo;
            arquivo.open("academia.txt",  ios::out | ios::trunc);
            for(unsigned int i=0; i < manager->alunos.size(); i++){//ALUNOS is a vector

                if(!manager->alunos[i]->ativo){
                    continue;
                }

                arquivo << manager->alunos[i]->ativo  << endl;
                arquivo << manager->alunos[i]->nome  << endl;
                arquivo << manager->alunos[i]->cpf  << endl;
                arquivo << manager->alunos[i]->cidade  << endl;
                arquivo << manager->alunos[i]->endereco  << endl;
                arquivo << manager->alunos[i]->telefone  << endl;

                arquivo << manager->alunos[i]->Ano  << endl;
                arquivo << manager->alunos[i]->AnoOriginal  << endl;
                arquivo << manager->alunos[i]->Mes  << endl;
                arquivo << manager->alunos[i]->MesOriginal  << endl;
                arquivo << manager->alunos[i]->Dia  << endl;
                arquivo << manager->alunos[i]->DiaOriginal  << endl;

                arquivo << manager->alunos[i]->Janeiro << endl;
                arquivo << manager->alunos[i]->Fevereiro << endl;
                arquivo << manager->alunos[i]->Marco << endl;
                arquivo << manager->alunos[i]->Abril << endl;
                arquivo << manager->alunos[i]->Maio << endl;
                arquivo << manager->alunos[i]->Junho << endl;
                arquivo << manager->alunos[i]->Julho << endl;
                arquivo << manager->alunos[i]->Agosto << endl;
                arquivo << manager->alunos[i]->Setembro << endl;
                arquivo << manager->alunos[i]->Outubro << endl;
                arquivo << manager->alunos[i]->Novembro << endl;
                arquivo << manager->alunos[i]->Dezembro << endl;

                arquivo << manager->alunos[i]->JaneiroPago << endl;
                arquivo << manager->alunos[i]->FevereiroPago << endl;
                arquivo << manager->alunos[i]->MarcoPago << endl;
                arquivo << manager->alunos[i]->AbrilPago << endl;
                arquivo << manager->alunos[i]->MaioPago << endl;
                arquivo << manager->alunos[i]->JunhoPago << endl;
                arquivo << manager->alunos[i]->JulhoPago << endl;
                arquivo << manager->alunos[i]->AgostoPago << endl;
                arquivo << manager->alunos[i]->SetembroPago << endl;
                arquivo << manager->alunos[i]->OutubroPago << endl;
                arquivo << manager->alunos[i]->NovembroPago << endl;
                arquivo << manager->alunos[i]->DezembroPago  << endl;
                }
                arquivo.close();
                return 1;
        }

Code parts:

class Aluno : public Dados

{ public: Aluno();

    Aluno(string nome,string cpf,string cidade, string endereco, string telefone);

    virtual ~Aluno();

    vector<Dados*> alunos;

protected:

private:

};

** COMMENT: Inheritance was used by option. I did not use polymorphism. I left the variables as * public *. **

class Dados : public Pagamentos{
public:
    Dados();
    Dados(string nome,string cpf,string cid,string ende, string telefone);
    string nome;
    string cpf;
    string cidade;
    string endereco;
    string telefone;
    bool ativo;
private:

};

Student registration:

void SistemaAlunos::cadastraAluno(Aluno *al){
alunos.push_back(al);

}

As stated, if you need any other part of the code: https://github.com/danielcassiano/Academia_Atletica/tree/master/test

The * .cpp * files are in * src * and the * .h * files are in * include *

Thanks!

c++
oop
fstream
archive
push-back
asked on Stack Overflow Apr 7, 2020 by Daniel Cassiano Chaves • edited Apr 7, 2020 by Daniel Cassiano Chaves

0 Answers

Nobody has answered this question yet.


User contributions licensed under CC BY-SA 3.0