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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Можно ли зарабатывать через интернет на дому зная хорошо С++? http://www.cyberforum.ru/cpp-beginners/thread1100613.html
Можно ли зарабатывать через интернет на дому зная хорошо С++?
C++ Определить количество часов работы 4-х преподавателей ВУЗа в учебном году Помогите пожалуйста решить эту задачу. Определить количество часов работы 4-х преподавателей ВУЗа в учебном году (использовать тип перечисления). Заранее спасибо! http://www.cyberforum.ru/cpp-beginners/thread1100608.html
Ввод символов до нажатия клавиши "Enter" C++
Нужно вводить символы до нажатия клавиши "Enter", а потом оставить эту строку для последующего использования. Нужно этот ввод реализовать с помощью функции, которая принимает только массив....
C++ Вычисление дискриминанта
Не работает программа. Подскажите, что не так.#include <QTextStream> #include<iostream> #include<math.h> using namespace std; int main () { QTextStream cout (stdout); #ifdef Q_WS_WIN...
C++ Задача со строками; запись в файл http://www.cyberforum.ru/cpp-beginners/thread1100603.html
1. Написать программу, которая, считывает текст из файла, находит самое длинное слово и определяет, сколько раз оно встретилось в тексте. Найденное слово и количество его повторений записать в новый...
C++ Найти все натуральные N-значения числа,цифры в которых делают сторого увелечение последовательности(234) Найти все натуральные N-значения числа,цифры в которых делают сторого увеличение последовательности(234). Помогите пожалуйста,что не так. #include <iostream> #include <conio.h> using std::cout;... подробнее

Показать сообщение отдельно
yurets17
1 / 1 / 0
Регистрация: 07.10.2013
Сообщений: 170

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

19.02.2014, 21:22. Просмотров 652. Ответов 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;
}
Но получается, что оно сохраняет в файл, только последний введенный элемент списка! А как сделать, чтобы сохранялся весь список?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru