Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.64/11: Рейтинг темы: голосов - 11, средняя оценка - 4.64
2 / 2 / 0
Регистрация: 13.11.2013
Сообщений: 41
1

Запись массива структур в бинарный файл

24.09.2014, 12:41. Показов 2283. Ответов 2
Метки нет (Все метки)

Есть структура Owner:
C++
1
2
3
4
5
6
7
8
9
10
11
12
struct Owner{
    char name[32];
    unsigned int purse;
    short catb[100];
    void addcat(short num);
};
void Owner::addcat(short num){
    for(int i(0);i<100;i++) {
        if(catb[i]==0) catb[i]=num;
        break;
    }
}
В программе создаётся массив из структур
C++
1
static struct Owner DBO [MAXOWNER];
И пытаюсь сохранить этот массив в бинарный файл(положить в файл массив так же, как он в памяти лежит). И потом его считать из этого файла.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
bool saveOwner(){
    FILE* file=fopen("file/oner","wb");
    if (!file) return false;
    cout<<fwrite(DBO,sizeof(Owner),100,file);
    fclose(file);
    return true;
}
bool bootOwner(){
    FILE* file=fopen("file/owner","rb");
    if (!file) return false;
    cout<<fread(DBO,sizeof(Owner),100,file);
    fclose(file);
    return true;
}
Массив записывается, но считать не получается. Подскажите, где не так и что не так, пожалуйста.
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
24.09.2014, 12:41
Ответы с готовыми решениями:

Запись массива структур в бинарный файл
Одно из полей структуры типа String, нужно записать массив структур в бинарный файл: struct...

Запись/чтение массива структур в бинарный файл
#include &lt;iostream&gt; #include &lt;fstream&gt; using namespace std; struct test { int x; ...

Запись в бинарный файл и чтение из него массива структур
Ребята, выручайте. Огромная проблема с записью и с чтением структуры из бинарного файла. Помогите...

Запись в бинарный файл и чтение из него массива структур
Здравствуйте, появилась проблема записью структуры в бинарный файл и чтение из него этой же...

2
Эксперт С++
4974 / 3082 / 456
Регистрация: 10.11.2010
Сообщений: 11,160
Записей в блоге: 10
24.09.2014, 12:48 2
Дело скорее всего в выравнивании полей.
На мой взгляд лучше всего записывать и считывать каждое поле по отдельности в цикле для всех структур.

Добавлено через 3 минуты
Например:
C++
1
2
3
4
5
6
for ( int i = 0; i < 100; i++ ) {
    fwrite( DBO[i].name, sizeof( DBO[i].name ), 1, file );
    ...
    остальные поля
    ...
}
0
2 / 2 / 0
Регистрация: 13.11.2013
Сообщений: 41
24.09.2014, 13:01  [ТС] 3
Кажется всё гораздо прозаичнее. Записываю я в один файл, а считываю из другого. Спасибо.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
24.09.2014, 13:01

Считывание и запись структур в бинарный файл
Здравствуйте, я делаю автоподгрузку и авто сохранение некоторой структуры в бинарный файл. И где-то...

Запись и чтение вектора структур в бинарный файл
Есть заполненный вектор структур. Структура вида: struct struc { string a; int x; map&lt;int,...

Запись и чтение вектора структур в бинарный файл(2)
Есть заполненный вектор структур. Структура вида: struct struc { string a; int x; ...

Ввод и вывод динамического массива структур в бинарный файл
Добрейшего вечерочка, дамы и господа. Есть программа, которая считывает массив структур из...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

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