Итак, я пытаюсь сделать телефонную книгу прямо сейчас, и одной из моих задач было прочитать информацию людей в текстовом файле.
Когда я вызываю функцию в моем main.cpp, мой массив объектов не получает данные из текстового файла. Я создал scratch.cpp для проверки метода, который пытаюсь использовать, и он работает, но как только я пытаюсь использовать его в своей программе, он не работает должным образом.
Я создал scratch.cpp для проверки метода, который пытаюсь использовать, и он работает, но как только я пытаюсь использовать его в своей программе, он не работает должным образом.
Это должно изменить значение массива
void TxtReader::read(Contacts* &contacts){
Contacts *contacts2 = new Contacts[0];
int contactSize = 0;
std::string firstName;
std::string lastName;
std::string phoneNumber;
std::string birthPlace;
std::string birthDate;
std::string Profession;
std::ifstream savedContacts("ContactList.txt");
Contacts newContact = Contacts();
do {
std::getline(savedContacts, firstName, ';');
std::getline(savedContacts, lastName, ';');
std::getline(savedContacts, phoneNumber, ';');
std::getline(savedContacts, birthPlace, ';');
std::getline(savedContacts, birthDate, ';');
std::getline(savedContacts, Profession, ';');
newContact.setFirstname(firstName);
newContact.setLastname(lastName);
newContact.setPhonenumber(phoneNumber);
newContact.setBirthplace(birthPlace);
newContact.setBirthdate(birthDate);
newContact.setProfession(Profession);
pushContact(contacts2, newContact, contactSize);
} while (std::getline(savedContacts, firstName));
delete[] contacts;
contacts = contacts2;
delete[] contacts2;
}
и вот как я назвал это в другом классе
void ContactDir::getList() {
textReader.read(contacts);
}
и затем я использовал это в моем main.cpp
Мне показалось, что все в порядке, программу можно скомпилировать, но она падает, когда попадает в функцию getList.
Отладчик показывает несколько ошибок, таких как:
«this = -var-create: невозможно создать переменный объект» в основном,
и «Сигнал = SIGSEGV (Ошибка сегментации)» в функции TxtReader :: read и в классе Contacts. а также я получил такие ошибки, как
"firstName = (std :: _ cxx11 :: string)" "" в контактах и контактах2 и объектах newContact
В классе Contacts есть сеттеры и геттеры, подобные этому:
Contacts::Contacts() {}
void Contacts::setFirstname(std::string firstName) {
this->firstName = firstName;
}
std::string Contacts::getFirstname() {
return firstName;
}