Тема: Зчитування масиву структур з файлу
Маю функцію запису у файл:
void newFile(string file_name, const Worker record[], int number_records)
{
ofstream f_out(file_name, ios_base :: binary);
f_out.write((char *) record, sizeof(Worker) * number_records);
f_out.close();
}
Функція, ніби працює - файл створюється і заповнюється "кракозябрами", при цьому кількість "кракозябр" пропорційно зміється при зміні кількості записів.
І маю функцію зчитування з файлу:
void readFromFile(string file_name, Worker *&records, int &number_records )
{
ifstream f_in(file_name, ios_base::binary);
f_in.seekg(0, ios_base :: end);
cout << f_in.tellg() << "\n";
number_records = f_in.tellg() / sizeof(Worker);
records = new Worker [number_records];
f_in.seekg(0);
f_in.read((char *)records, sizeof(Worker) * number_records);
f_in.close();
}
Кількість записів (number_records) рахує правильно, курсор переводиться на початок, здавалось би все добре. Але нічого не зчитує, принаймні оцей масив records має такий вигляд (внизу, на скріншоті, показано, що він заповнений нулевими (порожніми) значеннями):
В чому ж проблема?