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

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

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

Сохранение списка в файл! - C++

19.02.2014, 21:22. Просмотров 595. Ответов 3
Метки нет (Все метки)

Здравствуйте! Подскажите пожалуйста метод решения! Имеется задание: создать функцию записи списка в файл и функцию его восстановления из файла! Имеется такая наброска:
C++
1
2
3
4
5
6
7
8
9
10
11
12
int insert(list_head *list){
 
    FILE *f = fopen("info.txt", "wb");
    if (f==NULL){
        printf("File open error\n");
        return 0;
    }
 
        fwrite((char*)&list, sizeof(student), 1, f);
    fclose(f);
    return 0;
}
Для полной ясности сбрасываю и структуры:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
typedef struct {
    char name[50];
    int order;
    float average_point;
} student;
 
/**
 * Структура list_node описывает элемент списка
 */
typedef struct l_node{
    void *data;        // Указатель на данные
    l_node *next;      // Указатель на следующий элемент
} list_node;
 
/**
 * Структура list_head описывает голову списка
 */
typedef struct {
    list_node *head;    // Указатель на голову списка
    list_node *current;  // Указатель на текущий элемент списка
    int list_size;      // Кол-во элементов списка
    compare_func_t func_cmp; // Указатель на функцию сравнения элементов
} list_head;
Добавлено через 54 минуты

Меня интересует только правильно ли я записываю данные списка в файл или нет?

Добавлено через 42 минуты
объясните пожалуйста

Добавлено через 1 час 16 минут
Я немного поменял код!
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
int insert(list_head *list){
list_node *pr=list->head;
    FILE *f = fopen("info.txt", "wb");
    if (f==NULL){
        printf("File open error\n");
        return 0;
    }
    if(list->head!=NULL){
        fwrite((char*)&pr, sizeof(student), 1, f);
    pr=pr->next;}
    fclose(f);
    return 0;
}
Но получается, что оно сохраняет в файл, только последний введенный элемент списка! А как сделать, чтобы сохранялся весь список?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.02.2014, 21:22     Сохранение списка в файл!
Посмотрите здесь:

Сохранение и считывания списка с текстового файла - C++
Всем привет! Ребята я делаю программу по работе со списками и она уже почти готова, по сути всё сделал! Вот только не знаю как сохранить...

сохранение в файл - C++
можете подсказать как сохранять в файл вектор классов, есть три класса class defender private: int a; string b; class...

сохранение в файл - C++
как сохранить массив структур в файл и как считать из файла в массив структур

сохранение в файл - C++
Всем привет. Люди добрые помогите пж сохранить введенный результат в файл. #include <iostream.h> #include <stdio.h> #include...

Сохранение в файл - C++
Здравствуйте! Вообщем у меня такая задача: даны адресса с 77.106.0.0 до 77.106.225.225, нужно перебрать все возможные комбинации, т.е...

Сохранение в файл - C++
#include <iostream> #include <string.h> #include <conio.h> #include <stdlib.h> #include <sstream> #include <fstream> using...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DrOffset
7058 / 4199 / 949
Регистрация: 30.01.2014
Сообщений: 6,965
20.02.2014, 00:16     Сохранение списка в файл! #2
Надо сохранять поле data, а не узлы.
yurets17
1 / 1 / 0
Регистрация: 07.10.2013
Сообщений: 170
20.02.2014, 00:34  [ТС]     Сохранение списка в файл! #3
Цитата Сообщение от DrOffset Посмотреть сообщение
Надо сохранять поле data, а не узлы.
C++
1
2
        fwrite((char*)&pr->data, sizeof(student), 1, f);
}
так?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.02.2014, 00:58     Сохранение списка в файл!
Еще ссылки по теме:

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

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

Сохранение в текстовый файл - C++
Есть вот такой примерный код проги, которая должна считать значение ф-ции с определённым шагом(не меньше 10 значений), и считать её в...

Сохранение массива в файл - C++
Задача сохранить массив в текстовый файл. Вот что я сделал if ((file2 = fopen("2.txt","w+")) == NULL) printf("Файл невозможно открыть...

Сохранение переменной в файл - C++
Есть глобальная переменная static char Pass; Есть поток, в цикле которого эта переменная меняется раз в примерно 0.5 секунды. В мейне...

Сохранение картинок в файл - C++
Здравствуйте! В моей программе возникла потребность сохранять картинки в файл таким образом чтобы: 1. Пользователь не мог его...


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

Или воспользуйтесь поиском по форуму:
DrOffset
7058 / 4199 / 949
Регистрация: 30.01.2014
Сообщений: 6,965
20.02.2014, 00:58     Сохранение списка в файл! #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от yurets17 Посмотреть сообщение
C++
1
2
        fwrite((char*)&pr->data, sizeof(student), 1, f);
}
так?
Скорее так (но только в том случае, если там data действительно указывает на объекты типа student):
C++
1
fwrite(pr->data, 1, sizeof(student), f);
Yandex
Объявления
20.02.2014, 00:58     Сохранение списка в файл!
Ответ Создать тему
Опции темы

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