Read/Write structure to binary file
при попытке записать структуру или считать её из бинарного файла появляется ошибка в том что в него ничего не записывает а так же если раньше и записывало то не считывает его. Есть идеи в чём проблема? И есть ли какие-то предложение по правильному использованию reinterpret_cast?
void ReadToVector(std::vector<Contact> ¤tVector) {
Contact temp;
in_file.open(currentFileName, std::ios::out | std::ios::binary);
while (!in_file.eof()) {
in_file.read(reinterpret_cast<char*>(&temp), sizeof(Contact));
currentVector.push_back(temp);
};
in_file.close();
};
void Write() {
out_file.open(currentFileName, std::ios::app | std::ios::binary);
Contact person_1 {
"Alex",
"+380921412",
19,
"09.06.2003",
"Something info..."
};
Contact person_2 {
"Jace",
"+380921412",
19,
"09.06.2003",
"Something info..."
};
out_file.write(reinterpret_cast<char*>(&person_1), sizeof(Contact));
out_file.write(reinterpret_cast<char*>(&person_2), sizeof(Contact));
out_file.close();
};
Structure:
struct Contact {
char name[24];
char phone[12];
uint16_t age;
char birthday[16];
char note[64];
Contact() : age(0) { };
Contact(char inputName[24], char inputPhone[16]) : age(0) {
std::strcpy(inputName, name);
std::strcpy(inputPhone, phone);
};
Contact(char inputName[24], char inputPhone[16], uint16_t inputAge, char inputBirthday[16], char inputNote[64]) : age(inputAge) {
std::strcpy(inputName, name);
std::strcpy(inputPhone, phone);
std::strcpy(inputBirthday, birthday);
std::strcpy(inputNote, note);
};
};