При записи в бинарный файл структуры некоторые данные искажаются

Суть в чем, когда я пытаюсь записать данные в файл, некоторые данные выводятся нормально, а некоторые изменяются и становятся непонятными символами, в моем случае "ЭЭЭ..." (Вывод сверху идет непосредственно из Struct, а нижний вывод идет из бинарного файла (все данные из сгенерировал ChatGPT)) Вывод

Код моего конвертера

void convertToBinary(const string& binaryFileName) {
ofstream binaryFile(binaryFileName, ios::binary);
Abiturient ab;
if (binaryFile.is_open()) {
    for (Abiturient ab : Abiturients) {
        binaryFile.write(reinterpret_cast<char*>(&ab), sizeof(Abiturient));
    }
    binaryFile.close();
    }
    else {
        cout << "Ошибка открытия файлов для конвертации." << endl;
    }
 }

чтение файла

void readBinaryFile(const string& fileName) {
ifstream file(fileName, ios::binary);
if (file.is_open()) {
    Abiturient ab;
    while (file.read((char*)(&ab), sizeof(Abiturient))) {
        cout << ab.lastName << ab.firstName << ab.middleName << ab.gender << ab.nationality
            << ab.dateOfBirth << ab.address << ab.russianGrade << ab.englishGrade << ab.mathGrade << ab.passingScore << endl;
    }
    file.close();
}
else {
    cout << "Ошибка открытия файла для чтения." << endl;
}

}

Сами данные

Знаю что везде текстовые поля не нужно везде ставить.

struct Abiturient {
string lastName;
string firstName;
string middleName;
string gender;
string nationality;
string dateOfBirth;
string address;
string russianGrade;
string englishGrade;
string mathGrade;
string passingScore;

};


Ответы (0 шт):