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

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

Войти
Регистрация
Восстановить пароль
 
roma_m
0 / 0 / 0
Регистрация: 18.02.2014
Сообщений: 36
#1

Как восстановить список из бинарного файла? - C++

23.02.2014, 14:35. Просмотров 362. Ответов 1
Метки нет (Все метки)

Помогите написать функцию восстановления списка из бинарного файла
(желательно двумя способами: и использованием стандартной библиотеки С и fstream)
Есть вот такие идеи:
- для библиотеки С:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int loadCFile(list_head *list){
    FILE *f = fopen("info.dat", "rb");
    if (f==NULL){
        printf("File open error\n");
        return 0;
    }
    list_node *wp = list->head;int i=1;printf("4");
    while(!feof(f)){printf("2");
        fread((char*)&wp->data, sizeof(wp->data), i, f);
        wp=wp->next;i++;
    }wp->next=NULL;printf("0");
    fclose(f);
    return 1;
}
- для fstream:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
int loadFFile(list_head *list){
    fstream file;
    file.open("info.dat", ios::in|ios::binary);
    if (file.fail()){
        cerr<<"File open error\n";
        return 0;
    }list_node *wp=list->head;
    for(;!file.eof();wp->next=NULL,wp=wp->next)
        file.read((char*)&wp, sizeof(student));
    if (file.fail()){
        cerr<<"File write error\n";
    }file.close();
    return 1;
}
P.S. структуры:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/**
 * Структура list_node описывает элемент списка
 */
typedef struct l_node{
    void *data;        // Указатель на данные
    l_node *next;      // Указатель на следующий элемент
} list_node;
 
/**
 * Структура list_head описывает голову списка
 * Значения полей структуры изменяются функциями работы со списком,
 * такими как: list_init(), list_push_back()...
 * Изменять значения полей "вручную" не рекомендуется.
 */
typedef struct {
    list_node *head;    // Указатель на голову списка
    list_node *current; // Указатель на текущий элемент списка
    int list_size;      // Кол-во элементов списка
    compare_func_t func_cmp; // Указатель на функцию сравнения элементов
} list_head;
/**
 *Структура student описывает информацию о элементе списка
 */
typedef struct {
    char name[50];
    int order;
    float average_point;
} student;
Спасибо!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.02.2014, 14:35
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Как восстановить список из бинарного файла? (C++):

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

Чтение из бинарного файла в линейный динамический список - C++
У меня есть бинарный файл,который содержит массив структур.Нужно на основании этого файла создать линейный динамический список.Как...

Создание бинарного дерева из бинарного файла - C++
struct Bin { string name; string city; int players; int score; }; void ReadFromBin(Point*&amp; Tree) { Bin q;

Создание бинарного дерево из бинарного файла - C++
struct Bin { string name; string city; int players; int score; }; void ReadFromBin(Point*&amp; Tree) { ...

Как считать из бинарного файла - C++
Здравствуйте, я написала процедуру считывания из бинарного файла, но в результате выводится непонятный набор букв. Как сделать что бы...

Как осуществить Обработку бинарного файла? - C++
Файл содержит произвольные данные. Определить, встречается ли в файле определенная последовательность байт (заданных виде массива...

1
gudfar
0 / 0 / 0
Регистрация: 03.03.2014
Сообщений: 2
05.03.2014, 19:57 #2
твоя фамилия не Мельниченко?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.03.2014, 19:57
Привет! Вот еще темы с ответами:

Как считать числа из бинарного файла - C++
Стоит задача: записать простые числа в бинарный файл. Числа берутся из промежутка 1...n. Все сделал, но не получается вывести в консоль...

Как записывать и читать с БИНАРНОГО файла - C++
доброго времени суток. вопрос такой. есть программа, игра на которой есть игрок, враг, ловушки, и клад. игроку надо пройти ко кладу...

Как удалить структуру из бинарного файла - C++
Разработать программу на С++, позволяющую: 1) Добавлять данные структуры с указанными полями в файл.(выполнил) 2) Просматривать...

Как прочитать числа из бинарного файла - C++
Нужна помощь. Пытаюсь читать из бинарного файла простые числа, но ничего не читается. Файл взят тут, там же и его описание, через Hex...


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

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

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