Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
korol-sas
0 / 0 / 0
Регистрация: 22.11.2015
Сообщений: 8
#1

Запись вектора в бинарный файл - C++

04.02.2016, 04:45. Просмотров 170. Ответов 1
Метки нет (Все метки)

Здравствуйте, пытаюсь сделать запись вектора из обьектов моего класа в бинарный файл, но получаю не понятного рода символы в значениях атрибутов класа.
Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
void save()
{
     ofstream fout("data.dat", ios::out | ios::binary | ios::trunc);
     fout.write(reinterpret_cast<const char*>(&humans[0]), humans.size()*sizeof(Human));
     fout.close();
}
 
void load()
{
    ifstream fin("data.dat", ios::in | ios::binary);
    fin.seekg(0, fin.end);
    int N = fin.tellg();              
    fin.seekg(0, fin.beg);
 
    const size_t count = N / sizeof(Human);
    vector<Human> buf(count);
    fin.read(reinterpret_cast<char*>(&buf[0]), count*sizeof(Human));
    fin.close();
    humans = buf;
}
получаю допустим такой результат в атрибуте first_name моего класа Human: `-61 'Г'`

Вот мой клас:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
public class Human {
    public:
        void set_first_name(char *);
        char *get_first_name();
 
        void set_last_name(char *);
        char *get_last_name();
       
        void set_phone(char *);
        char *get_phone();
 
        void set_address(Address);
        Address get_address();
 
    private:
        char *first_name;
        char *last_name;
        char *phone;
        Address address;
 
};
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.02.2016, 04:45     Запись вектора в бинарный файл
Посмотрите здесь:
C++ Запись вектора в бинарный файл
C++ Запись в бинарный файл вектора
C++ Запись вектора в бинарный файл.
C++ Запись вектора строк в бинарный файл
C++ Запись в бинарный файл двумерного строкового вектора и его считывание
Запись вектора uin8_t в бинарный файл и обратное чтение из файла C++
C++ Запись в бинарный файл
C++ Запись в бинарный файл
C++ Запись в бинарный файл
Запись в бинарный файл C++
C++ Запись в бинарный файл
Запись в бинарный файл C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
nd2
2130 / 1702 / 601
Регистрация: 29.01.2016
Сообщений: 5,485
04.02.2016, 17:36     Запись вектора в бинарный файл #2
Цитата Сообщение от korol-sas Посмотреть сообщение
sizeof(Human)
Ты в файл что записываешь? Указатели? Покажи, чем ты их инициализируешь.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru