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

Массив структур(правильное чтение структуры после перезагрузки программы) - C++

Восстановить пароль Регистрация
 
Игорёчег
 Аватар для Игорёчег
0 / 0 / 0
Регистрация: 31.03.2011
Сообщений: 18
20.04.2012, 19:49     Массив структур(правильное чтение структуры после перезагрузки программы) #1
Собственно проблема вот в чём. Не получается сохранить целостность структуры после считывания её(структуры) с файла(.тхт). Списки здесь типа "очередь" (FIFO) . Вот код:

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
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
#include <iostream>
#include <string>
#include <fstream>
#include <windows.h>
using namespace std;
struct node
{
 int value;     //информационное поле
 node *next;    //указатель на следующий елемент
};
class Spisok
{
 node *no;      //начало списка
 node *ko;      //конец списка
 int temp;
public:
    Spisok(){no=NULL;ko=NULL;}  
 void Post();   //построение списка
 void Show();   //вывод списка на екран
 void Add();    //добавление записи в списки
 void Delete(); //удаление записи
 void Read();   //чтение с фала(и вывод прочитанного на экран)
 void Write();  //запись в файл
 
};
void Spisok::Post()
{
 cout<<"Ghelaete zapolnit` zapis`('y')?"<<endl;
 char sw;
 cin>>sw;
 if(sw=='y')
 {
  node *r=new node;  
  no=r;
  ko=r;
  cout<<"Wedite znachenia"<<endl;
  cin>>r->value;
  r->next=NULL;
  cout<<"Dobavit` eshe zapis?('y')"<<endl;
  cin>>sw;
  while(sw=='y')
  {
   r=new node;
   r->next=NULL;
   cout<<"wedite chislo"<<endl;
   cin>>r->value;
   ko->next=r;
   ko=r;
   cout<<"Dobavit` eshe zapis?('y')"<<endl;
   cin>>sw;
  }
 
 }
 
}
void Spisok::Show()
{
 node *r=no;
 while(r!=NULL)
 {
 
  cout<<r->value<<endl;
  r=r->next;
 
 }
 
}
void Spisok::Add()
{
 node *q=new node;
 cout<<"wedite chislo!"<<endl;
 cin>>q->value;
 q->next=NULL;
 if(no!=NULL)
 {
  ko->next=q;
  ko=q;
 }
 else
 {
  no=q;
  ko=q;
 }
}
void Spisok::Delete()
{
 node  *r=no;
 if(no!=NULL)
 {
  temp=no->value;
  no=no->next;
  delete r;
 }
} 
void Spisok::Ochistka()
{
 node *q=no;
 if(no!=NULL)
 {
  while(no!=ko)
  {
   no=q->next;
   delete q;
   q=no;
  }
 delete no;
 ko=NULL;
 no=NULL;
 }
}
void Spisok::Write()
{
    node *t=no;
    ofstream fout("file1.txt",ios::trunc);
    while(t!=NULL)
    {
    
        fout.write((char*)&t->value,sizeof(node));
        t=t->next;
    }
    fout.close();
}
void Spisok::Read()
{
    node *t=no;
    ifstream fin("file1.txt");
    while(t!=NULL)
    {
        fin.read((char*)&t->value,sizeof(node));
        cout<<t->value<<" ";
        t=t->next;
    }
    fin.close();
}
void main()
{
 Spisok ob;
 int n;
 cout<<"Read info from file  -  (1)"<<endl;
 cout<<"Write info into the file  -  (2)"<<endl;
 cin>>n;
 
    SetConsoleCP(1251);
    SetConsoleOutputCP(1251);
    switch(n)
    {
    case 1:cout<<"read :"<<endl;ob.Read();break;
    case 2:{ cout<<"Postroenie :"<<endl;
        ob.Post();cout<<"Vuvod 1 :"<<endl;
        ob.Show();cout<<"Dobavlenie :"<<endl;
        ob.Add();cout<<"Write :"<<endl;ob.Write()
    ;}
    }
}
Чем можете помогите, буду очень признателен!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.04.2012, 19:49     Массив структур(правильное чтение структуры после перезагрузки программы)
Посмотрите здесь:

C++ Структуры, массив структур.
Правильное чтение символов в динам. массив C++
Создать базу данных (массив структур) в соответствии с заданной структуры C++
Форматированное чтение из файла в массив структур C++
C++ Чтение из текстового файла массив структур
C++ Задача на структуры. По двум массивам структур сформировать третий массив
Чтение из файла в массив структур (ошибка со string) C++
C++ Сохранение и чтение структуры из файла (crash программы)

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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