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

Написать пару функций для сохранения и восстановления дерева в/из файл (-а) - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Разница между определением и объявлением переменной http://www.cyberforum.ru/cpp-beginners/thread1245760.html
Здравствуйте! При определении переменной под неё выделяется память.Скажите, выделяется ли память под переменную при объявлении без начального значения? int a; Спасибо за внимание!
C++ Вычислить, сколько в строке слов, заканчивающихся гласной буквой Помогите с решением этой задачи: Дана строка до точки, группа символов в которой между пробелами считается словом, знаки препинания от слова пробелом не отделяются. Необходимо вычислить, сколько в строке слов, заканчивающихся гласной буквой. http://www.cyberforum.ru/cpp-beginners/thread1245736.html
Решить СЛАУ и проверить условие ортогональности C++
Помогите с данной задачей: Решить СЛАУ A(n,n)X=B(n), где матрица A и вектор B заданы. Для матрицы C=XXT проверить условие ортогональности: CCT =E и CTC=E, где E – единичная матрица.
Выбор файла для открытия C++
Добрый день, мне нужна помощь с программой, почти всё сделано, только осталось прикрутить выбор файла пользователем для редактирования(прога редактирует текст). Я пытался сам прикрутить, но видимо что-то не выходит, ошибку в упор не вижу в силу не знания тонкостей языка. Помогите пожалуйста, вот код: #include "stdafx.h" #include<cstdio> #include<cstring> #include<string> #include<iostream>...
C++ Поток ввода-вывода http://www.cyberforum.ru/cpp-beginners/thread1245624.html
#include <iostream> using namespace std; int main() { int i; while(true) { if(cin>>i)
C++ Что такое "сокет"? Посоветуйте литературу Сокет - название программного интерфейса для обеспечения обмена данными между процессами, что то вроде управления протоколом ? и посоветуйте пожалуйста литературу подробнее

Показать сообщение отдельно
roma_m
0 / 0 / 0
Регистрация: 18.02.2014
Сообщений: 36
24.08.2014, 23:21  [ТС]     Написать пару функций для сохранения и восстановления дерева в/из файл (-а)
Шаблонный класс:

C++ (Qt)
1
2
3
4
5
6
7
template <typename T>
class Tree
{
    typedef struct leaf{
        T *data;
        leaf *right, *left;
    }TLeaf;
Здесь data - это
C++ (Qt)
1
2
3
4
5
6
class Scope
{
private:
    string name;
    int identificalNum;
    float IQ;
И мне нужно из Tree восстановить по одному элементу Scope, который находится в указателе T *data.

Добавлено через 5 минут
Как альтернатива (но к сожалению тоже не работает):

через fstream (ifstream and ofstream)

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
29
30
31
32
33
34
35
36
37
38
39
40
41
bool save(const string &fname)
    {
        ofstream f;
        f.open(fname.c_str(),ios::out | ios::binary);
 
        if(!f.is_open()) return false;
 
        this->s(this->head, f);
 
        f.close();
        return true;
    }
    void s(TLeaf *&wp, ofstream &f)
    {
        if( wp == NULL) return;
 
        f.write((char*)wp->data, sizeof(T));
        s(wp->left, f);
        s(wp->right, f);
    }
    bool load(const string &fname)
    {
        ifstream file;
        file.open(fname.c_str(),ios::in | ios::binary);
 
        if(!file.is_open()) return false;
 
        T *wp = new T();
 
        for(int var = 0; !file.eof(); ++var)
        {
            cout << var << endl;
            file.read((char*)wp,sizeof(T));
            this->addLeaf(*wp);
            cout << var << endl;
        }
 
        delete wp;
        file.close();
        return true;
    }
 
Текущее время: 13:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru