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

Запись из файла в дерево - C++

Восстановить пароль Регистрация
 
SKS-65
5 / 5 / 1
Регистрация: 18.10.2011
Сообщений: 187
03.07.2013, 02:47     Запись из файла в дерево #1
Помогите пожалуйста, задание записать имеющиеся данные из файла в дерево, у меня есть вот такие идеи, но я не знаю как организовать чтобы переходить на другие элементы можно было, и ещё этот код не работает, выдаёт ошибку когда в мэйне объявляю объект типа своего класса.
C++
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
class TKartoteka
{
private:
    struct BinaryTree
    {
        char TitleComposition [30];
        char TitleAlbum [30];
        char Executor [30];
        char Genre[30];
        int Year;
        int Duration;
        long int ID;
        short num;
        long int GenerationID();
        void PrintEl();
        BinaryTree* left;
        BinaryTree* right;
 
BinaryTree()
{
    ID=GenerationID();
    strcpy(this->TitleComposition, "");
    strcpy(this->TitleAlbum, "");
    strcpy(this->Executor, "");
    this->Year=0;
    strcpy(this->Genre, "");
    this->Duration=0;
    this->num=0;
    this->left=NULL;
    this->right=NULL;
}
    };
    BinaryTree* pRoot;//корневой
public:
    ~TKartoteka();
    TKartoteka(){pRoot=NULL;}
    void LoadIntoTheFile();
};
 
void TKartoteka::LoadIntoTheFile()
{
    BinaryTree* ptr=new BinaryTree();
    char fname[]="C://MyFile.txt";
    FILE* f;
    
    f=fopen(fname,"rt");
    
    if (f)
    {
   
        while (!feof(f))
        {
            fscanf(f, "%s %s %s %s %d %d %d ", ptr->TitleComposition, ptr->Executor, ptr->TitleAlbum, ptr->Genre,
                &ptr->Year, &ptr->Duration, &ptr->ID);
            fwrite("%s %s %s %s %d %d %d \n", 4*sizeof(char)+3*sizeof(int), 7, f);
        }
        fclose(f);
        
    }
    else 
        cout<<"File not found";
}
 
 
void main()
{
    TKartoteka ptr;
    ptr.LoadIntoTheFile();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.07.2013, 02:47     Запись из файла в дерево
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
igorrr37
 Аватар для igorrr37
1593 / 1221 / 118
Регистрация: 21.12.2010
Сообщений: 1,868
Записей в блоге: 7
03.07.2013, 09:51     Запись из файла в дерево #2
C++
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
 
class TKartoteka
{
private:
 
    struct Node
    {
        char TitleComposition [30];
        char TitleAlbum [30];
        char Executor [30];
        char Genre[30];
        int Year;
        int Duration;
        long int ID;
        short num;
        long int GenerationID();
        Node* left;
        Node* right;
 
        Node()
        {
            strcpy(this->TitleComposition, "");
            strcpy(this->TitleAlbum, "");
            strcpy(this->Executor, "");
            strcpy(this->Genre, "");
            this->Year=0;
            ID= 0;
            this->Duration=0;
            this->num=0;
            this->left=0;
            this->right=0;
        }
 
        Node(Node const& rhs)
        {
            strcpy(TitleComposition, rhs.TitleComposition);
            strcpy(TitleAlbum, rhs.TitleAlbum);
            strcpy(Executor, rhs.Executor);
            strcpy(Genre, rhs.Genre);
            Year=rhs.Year;
            Duration=rhs.Duration;
            num=rhs.num;
            ID=rhs.ID;
            left=rhs.left;
            right=rhs.right;
        }
 
        void insert(Node const& rhs)
        {
            if(rhs.ID < ID)
            {
                if(!left)
                    left = new Node(rhs);
                else
                    left->insert(rhs);
            }
            if(rhs.ID > ID)
            {
                if(!right)
                    right = new Node(rhs);
                else
                    right->insert(rhs);
            }
        }
 
        void print() const
        {
            if(left)
                left->print();
            std::cout << ID << "\n\n";
            if(right)
                right->print();
        }
 
    };
    Node* pRoot;//корневой
 
public:
 
    TKartoteka() : pRoot(0){}
 
    void insert(Node const& rhs)
    {
        if(!pRoot)
            pRoot = new Node(rhs);
        else
            pRoot->insert(rhs);
    }
 
    void LoadFile();
 
    void print() const
    {
        if(pRoot)
            pRoot->print();
    }
};
 
void TKartoteka::LoadFile()
{
    Node tmp;
    FILE* f=fopen("in.txt","rt");
    if (f)
    {
        while (!feof(f))
        {
            fscanf(f, "%s %s %s %s %d %d %d %d", tmp.TitleComposition, tmp.Executor, tmp.TitleAlbum, tmp.Genre,
                &tmp.Year, &tmp.Duration, &tmp.ID, &tmp.num);
            insert(tmp);
            //fwrite("%s %s %s %s %d %d %d \n", 4*sizeof(char)+3*sizeof(int), 7, f);
        }
        fclose(f);
 
    }
    else
        cout << "File not found";
}
 
 
int main()
{
    TKartoteka obj;
    obj.LoadFile();
    obj.print();
}
SKS-65
5 / 5 / 1
Регистрация: 18.10.2011
Сообщений: 187
03.07.2013, 09:58  [ТС]     Запись из файла в дерево #3
Спасибо большое, очень выручил
Yandex
Объявления
03.07.2013, 09:58     Запись из файла в дерево
Ответ Создать тему
Опции темы

Текущее время: 21:03. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru