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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Игорёчег
0 / 0 / 0
Регистрация: 31.03.2011
Сообщений: 18
#1

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

20.04.2012, 19:49. Просмотров 350. Ответов 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()
    ;}
    }
}
Чем можете помогите, буду очень признателен!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.04.2012, 19:49     Массив структур(правильное чтение структуры после перезагрузки программы)
Посмотрите здесь:

Правильное чтение символов в динам. массив - C++
Ошибка скорей всего в синтаксисе. Если надо, могу и все исходники выложить хэдэр class Cow { public: const static int lenght = 20;...

Структуры, массив структур. - C++
К примеру есть структура struct name{ int first; char second; }; мы создаем переменные name ex1={16,'d'}; name ex1={51,'s'}; ...

Форматированное чтение из файла в массив структур - C++
Здравствуйте, посоветуйте как лучше сделать чтение из файла в массив структур с разными типами данных. Входной файл (все денные введены...

Чтение из текстового файла массив структур - C++
Доброго времени суток. Нужно из текстового файла заполненного по типу ( Фио Диагноз числопоступления пол ) занести информацию в бинарный...

С++ Динамический массив структур (добавление новой структуры) - C++
Друзья, создаю программу &quot;Библиотека&quot; и запоролся на добавлении структуры к массиву (книги в картотеку, если коротко). Проблема в...

Чтение из файла в массив структур (ошибка со string) - C++
Есть задача: считать из файла информацию в массив структур. Файл: Иван Иванов Иванович 18 1 2 8.6 Петр Петров Петрович 17 1 3...

Реализовать динамический массив структур внутри динамической структуры - C++
Добрый вечер! Я никак не могу реализовать динамический массив структур внутри динамической структуры. Может кто нибудь ссылочку скинет на...

Сохранение и чтение структуры из файла (crash программы) - C++
Есть структура cars, над которой нужно произвести несколько операций, в том числе - и сохранение и открытие из файла. enum...

Создать базу данных (массив структур) в соответствии с заданной структуры - C++
Создать базу данных (массив структур) в соответствии с заданной структуры для двух групп 5-10 структур и для каждой группы. Реализовать...

Отсортировать массив из структур по одному из полей структуры любым способом - C++
Отсортировать массив из структур по одному из полей структуры любым способом.

Задача на структуры. По двум массивам структур сформировать третий массив - C++
Условие: Задано два элемента структур. Структуры первого массива содержат сведения о фамилии людей и их адреса. Другой - о фамилии и номера...

Тема: Структуры. Условие: сделать массив структур, который содержит следующею информацию - C++
В радиоателье сохраняются квитанции о заданной в ремонт аппаратуре. Каждая квитанция содержит такую информацию: название группы...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru