Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 31.03.2011
Сообщений: 18
1

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

20.04.2012, 19:49. Показов 679. Ответов 0
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Собственно проблема вот в чём. Не получается сохранить целостность структуры после считывания её(структуры) с файла(.тхт). Списки здесь типа "очередь" (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()
    ;}
    }
}
Чем можете помогите, буду очень признателен!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.04.2012, 19:49
Ответы с готовыми решениями:

Структуры.Обработка массивов структур.Создать массив структур из 10-ти элементов
Создать массив структур из 10-ти элементов: &lt;Номер договора&gt;&lt;Фамилия клиента&gt;&lt;стоимость...

IntelliTrace остается в процессах после закрытия программы. Правильное завершение программы?
Много (очень много) раз запускал программу, закрывал через крестик. Вдруг винда сообщает, что...

Правильное чтение символов в динам. массив
Ошибка скорей всего в синтаксисе. Если надо, могу и все исходники выложить хэдэр class Cow {...

Структуры, массив структур.
К примеру есть структура struct name{ int first; char second; }; мы создаем переменные name...

0
20.04.2012, 19:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.04.2012, 19:49
Помогаю со студенческими работами здесь

Вложенные структуры и массив структур
Помогите пожалуйста составить программу с использованием вложенных структур и массива структур на...

Чтение из файла в массив структур
Помогите пожалуйста как правильно написать код. Есть некий текстовый файл на самом деле это Ексел...

Ошибка во время выполнения программы (структуры, массивы структур, указатели на структуру)
Работаю вот с таким кодом: #include&lt;iostream&gt; #include&lt;cstdio&gt; #include&lt;conio.h&gt;...

Инициализация структуры содержащей массив структур
Всем привет. на с# только начал писать, и нужно перенести сишный код в котором было несколько...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru