У меня проблемы. После написания полностью ориентированного объектного программирования на C ++ я пытаюсь сохранить данные в архиве, чтобы использовать их снова каждый раз, когда программа открывается.
В первой строке подтверждается: " Студент Даниэль Кассиано был успешно зарегистрирован ". (PT-BR)
Отображение зарегистрированных данных.
Программа записывает в текстовый файл:
Но после этого программа больше не запускается.
** КОДЫ: ** КОММЕНТАРИИ: 1. Переменные, имеющие 2 после описания, являются вспомогательными (пробел). 2. Вот код на Github для лучшего просмотра: https: //github.com/danielcassiano/Academia_Atletica
Открытие архива:
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();
Закрытие архива:
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;
}
Кодовые части:
class Aluno : public Dados
{publi c: Aluno ();
Aluno(string nome,string cpf,string cidade, string endereco, string telefone);
virtual ~Aluno();
vector<Dados*> alunos;
protected:
private:
};
** КОММЕНТАРИЙ: Наследование был использован по выбору. Я не использовал полиморфизм. Я оставил переменные как * publi c *. **
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:
};
Регистрация студента:
void SistemaAlunos::cadastraAluno(Aluno *al){
alunos.push_back(al);
}
Как указано, если вам нужна какая-либо другая часть кода : https://github.com/danielcassiano/Academia_Atletica/tree/master/test
Файлы *. cpp * находятся в * sr c *, а файлы * .h * в * включают *
Спасибо!