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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Нахождение двух максимальных чисел из 10 http://www.cyberforum.ru/cpp-beginners/thread553697.html
Вводится последовательно 10 чисел, найти 2 максимальных из них #include <iostream> using namespace std; int main () { int number, largest_1, largest_2, counter = 1; cout<<"Vvedite 1oe...
C++ Создание стека Помогите пожалуйста решить задачу на С++. Определить класс «Стек» – Stack. Элементы стека хранятся в массиве. Если массив имеет фиксированную размерность, то предусмотреть контроль выхода за... http://www.cyberforum.ru/cpp-beginners/thread553695.html
C++ Из паскаля в си++
Здравствуйте. Помогите, пожалуйста, сконвертировать программу с турбо паскаля на си++. Очень нужно для проекта. Заранее благодарен. var n,i:integer; w:array of longint; p,t,s,j,k,min:longint;...
C++ Создание bmp изображения.(Нужна помощь)
Подскажите новичку пожалуйста, я изучаю С++ и пытаюсь создать библиотеку для рисования в файле расширения bmp но столкнулся с одной проблемой: при занесении информации об изображении и заголовка,...
C++ Строки и файлы С++ http://www.cyberforum.ru/cpp-beginners/thread553645.html
Написать программу, которая считывает текст из файла и выводит на экран только те предложения, содержащие введенное с клавиатуры слово. Помогите пожалуйста! ;) P.S если уже было скиньте ссылку на...
C++ в матрице К(7,7) найти минимальный элемент и заменить его на значение среднего в матрице К(7,7) найти минимальный элемент и заменить его на значение среднего арифметического верхней треугольной матрицы подробнее

Показать сообщение отдельно
Игорёчег
0 / 0 / 0
Регистрация: 31.03.2011
Сообщений: 18

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

20.04.2012, 19:49. Просмотров 374. Ответов 0
Метки (Все метки)

Собственно проблема вот в чём. Не получается сохранить целостность структуры после считывания её(структуры) с файла(.тхт). Списки здесь типа "очередь" (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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru