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

Запись, чтение объектов в файл через указатели. - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Пример из MSDN не компилируется Dev-C++ http://www.cyberforum.ru/cpp-beginners/thread354514.html
Уважаемые Коллеги, возможно из-за недостатка опыта не могу понять причину возникновения ошибок при компиляции Dev-C++ файла-примера печати окна, взятого из http://support.microsoft.com/kb/186736/ru Вот его фрагменты: .... // Create a copy of the current system palette. HPALETTE GetSystemPalette() { HDC hDC; HPALETTE hPal; HANDLE hLogPal; LPLOGPALETTE...
C++ Буквы из текста Дан текст из строчных латинских букв, за которым следует точка. Напечатать: а) первые вхождения букв в текст, сохраняя их исходный порядок; б) все буквы, входящие в текст не менее 2 раз; в) все буквы, входящие в текст по 1 разу. http://www.cyberforum.ru/cpp-beginners/thread354510.html
C++ есть решения???
Валя и Вера собрались варить варенье из А кг смородины. По рецепту на 2 кг ягод нужно 3 кг сахара. Валя сказала, что им потребуется С кг сахара, а Вера - что Р кг. Кто из них прав? на языке СИ
Выяснить, имеются ли в матрице ненулевые элементы C++
Дана целочисленная квадратная матрица 15 и 20, выяснить имеются ли в матрице ненулевые элементы, если имеются, то указать индексы всех ненулевъх элементов
C++ Научно-практическая конференция http://www.cyberforum.ru/cpp-beginners/thread354486.html
Ребят меня оправили на конференцию не спросив хочу ли я этого - кроме дипломки еще один гемор вылезет... Тему хоть дали "Применение криптографии в программе для сохранения конфиденциальности данных". Сегодня ночь будет в стиле зомби. Я то уже вроде родил идею - скармливаем приложению drag-n-drop методом например docx документ конфиденциальной информации, приложение начинает обработку...
C++ Ошибка компиляции файла Здравствуйте! Набросал два файла с кодом вроди все нормально, но при компиляции файла String.h получаю следущее No rule to make target 'String.o'. Stop. ??? Не подскажите добрые люди как его отладить??? Пользую Devcpp.... подробнее

Показать сообщение отдельно
mishe4ka
0 / 0 / 0
Регистрация: 21.09.2011
Сообщений: 21
21.09.2011, 15:02     Запись, чтение объектов в файл через указатели.
не могу прочитать объекты из файла. Сломал голову. Все перепробовал.
Препод отправил гуглить))).
Писать что то вроде пишет? Но что?
А читать при перезапуске программы отказывается. Говорит что в файле (0) объектов.
И ошибка сегментирования (как правило выход за пределы цикла)???

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
#include<iostream>
#include<cstdlib>
#include<fstream>
using namespace std;
////////////////////////////////////////////
class person
{
  char name[80];
  int age;
  static person* pers[];
  static int n;
 
 
 public:
   void getData()
   {
     cout<<"\n Введите имя: "; cin>>name;
     cout<<" Введите возраст:"; cin>>age;
   }
//////////////////////////
  void showData()
   {
    cout<<"\n Имя:"<<name;
    cout<<"\n Возраст:"<<age;
   }
 
 static void add();
 static void display();
 static void write();
 static void read();
  
};
/////////////////////////
  void person:: display()
   {
    for(int j=0;j<n;j++)
      {
        cout<<"Person #"<<(j+1);
        pers[j]->showData();
        cout<<endl;
      }
  }
 
/////////////////////
  void person:: write()
  { 
    int j;
    cout<<"Идет запись..."<<n<<" человек\n";
    ofstream ouf;
    ouf.open("PERS.DAT",ios::app|ios::binary);
   
 
    for( j=0;j<n;j++)
     {
      ouf.write(reinterpret_cast<char*>(pers[j]),sizeof(person));
     }
   cout<<"Записано"<<j<<"человек"<<endl;
 }
//////////////////
 void person:: read()
 {
  ifstream inf;
  inf.open("PERS.DAT",ios::binary);
  inf.seekg(0);
  cout<<"количество человек "<<n<<endl;
  cout<<"чтение из файла "<<endl;
  int j;
 
  inf.read(reinterpret_cast<char*>(pers[j]),sizeof(person));
 
  while(!inf.eof())
   {
    cout<<"Начало цикла "<<endl;    
    pers[j]=new person;
    inf.read(reinterpret_cast<char*>(pers[j]),sizeof(person));
    cout<<"адрес человека "<<pers[j]<<endl;
    j++;
   }
  cout<<"Идет чтение "<<j<<"человек \n"<<endl;
  
 }    
///////////////////////////
 void person:: add()
 {
  char ch;
   cout<<"Добавить человека(y/n)?";
   cin>>ch;
   while(ch=='y')
     {
      pers[n]=new person;
      pers[n]->getData();
      n++;
      cout<<"сохранить еще человека(y/n)?";
      cin>>ch;
     }
 }
 
 
///////////////////////////////////////////////////////
int person::n;
person* person::pers[100];
 
///////////////////////////////////////////////////////
int main()
{
 char ch;
 while(true)
   {
    cout<<"'a'-добавить человека"
        "\n'd'-вывести сведения"
        "\n'w'-записать все данные в файл"
        "\n'r'-прочитать все данные из файла"
        "\n'x'-выход"
        "\nВаш выбор: ";
     cin>>ch;
   
    switch(ch)
     {
       case'a': person::add(); break;
       case'd':person::display(); break;
       case'w':person::write();   break;
       case'r':person::read();    break;
 
       case'x':exit(0);
       default:cout<<"Неизвестная команда";
     }
   }
  
   return 0;
 }
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 19:41. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru