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

Списки - C++

Восстановить пароль Регистрация
 
Игорёчег
 Аватар для Игорёчег
0 / 0 / 0
Регистрация: 31.03.2011
Сообщений: 18
20.04.2012, 09:22     Списки #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
#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 Read();  //чтение с файла
 void Write();  //запись в файл
 
};
void Spisok::Post()
{
 cout<<"Bashaete vvestu novy lanky?"<<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<<"Dodatu sche zapus?"<<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<<"Dodatu sche zapus?"<<endl;
   cin>>sw;
  }
 
 }
 
}
void Spisok::Show()
{
 node *r=no;
 while(r!=NULL)    //пока не встретится последняя запись
 {
 
  cout<<r->value<<endl;
  r=r->next;   ///перейти к следующей записи
 
 }
 
}
void Spisok::Write()
{
    node *t=no;     //переводим указатель на начало списка
    ofstream fout("file2.txt");
    while(t!=NULL)   //пока не дойдём до конца списка
    {
    
        fout.write((char*)&t->value,sizeof(node));
        t=t->next;   //переход на следующую запись
    }
    fout.close();
}
void Spisok::Read()
{
    node *t=new node;
    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;
 cout<<"Postroenie :"<<endl;
 ob.Post();
cout<<"Vuvod 1 :"<<endl;
 ob.Show();
cout<<"Zapis v fail"<<endl;
ob.Write();
cout<<"Chtenie s faila"<<endl;
ob.Read();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.04.2012, 09:22     Списки
Посмотрите здесь:

C++ Списки в С++
C++ Списки!!!
C++ списки С++
C++ Списки
списки C++
C++ Списки!
Списки в C++ C++
C++ списки

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

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

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