Почему я не могу вставить значения в массив объектов структуры?
У меня есть этот блок кода, - collection - это мой объект fstream, а-students-это структура, которую я создал. Я сделал-file[ctr] - который представляет собой массив объектов студентов, когда я строю и запускаю его, IDE, которую я использую, которая является Code:: Blocks, не дает мне ошибок. Сообщение об ошибке [fileprocessing.exe перестал работать. Проблема, из-за которой программа перестала работать правильно...и т. д.] появляется после того, как я заполняю firstname. Есть идеи, что может быть не так с моим кодом?
if(choice2=='A'||choice2=='a'){ students file[ctr]; cout<<"Student ID: "; cin>>file[ctr].studentID; cout<<"Surname: "; cin>>file[ctr].surname; cout<<"Firstname: "; cin>>file[ctr].firstname; cout<<"Birthdate: "; cin>>file[ctr].birthdate; cout<<"Sex: "; cin>>file[ctr].sex; fstream collection(filename, std::fstream::in | std::fstream::out | std::fstream::app); collection<<ctr <<"\t"<<file[ctr].studentID <<"\t"<<file[ctr].surname <<"\t"<<file[ctr].firstname <<"\t"<<file[ctr].birthdate <<"\t"<<file[ctr].sex <<endl; collection.close(); ctr++; system("cls"); }
Что я уже пробовал:
int ctr=1; if(choice2=='A'||choice2=='a'){ students file; cout<<"Student ID: "; cin>>file.studentID; cout<<"Surname: "; cin>>file.surname; cout<<"Firstname: "; cin>>file.firstname; cout<<"Birthdate: "; cin>>file.birthdate; cout<<"Sex: "; cin>>file.sex; fstream collection(filename, std::fstream::in | std::fstream::out | std::fstream::app); collection<<ctr<<"\t"<<file.studentID <<"\t"<<file.surname <<"\t"<<file.firstname <<"\t"<<file.birthdate <<"\t"<<file.sex <<endl; collection.close(); ctr++; system("cls"); }
Просто я только что удалил [ctr]s, и он работает хорошо, но я знаю, что это вызовет у меня проблемы, когда я буду работать над другими частями моей системы. Я должен сделать массив объектов, потому что у меня есть коллекция данных студентов в коллекции текстовых файлов, и они не должны быть объектом студентов... Пожалуйста, помогите!