Вот код:
Код:
#include <iostream>
#include <fstream>
using namespace std;
class Person
{
private:
char* name;
char* secondname;
char* thirdname;
unsigned long number;
public:
friend istream& operator >> (istream&, Person* );
void get_values()
{
cout << "Введите ФИО: ";
cin >> thirdname >> name >> secondname;
cout << "Введите номер: ";
cin >> number;
}
void show_pers()
{
cout << "Номер: " << number << '\n';
cout << thirdname << ' ' << name << ' ' << secondname << '\n';
}
};
void write_obj(Person*);
Person* read_obj(int);
int main()
{
char ans;
int num;
Person* Ptr[100];
do
{
Ptr[num] = new Person;
cin >> Ptr[num++];
cout << "Есть ли еще персоны? (y/n) >";
cin >> ans;
} while ( ans == 'y' );
for ( int i = 0; i < num; i++ )
write_obj(Ptr[i]);
for ( int i = 0; i < num; i++ )
Ptr[i] = 0;
for ( int i = 0; i < num; i++ )
Ptr[i] = read_obj(i);
return 0;
}
istream& operator >> (istream& s, Person* ptr)
{
ptr->get_values();
return s;
}
void write_obj(Person* obj)
{
ofstream ouFile;
ouFile.open("g12u4.txt", ios::app | ios:: binary );
if ( !ouFile )
{
cerr << "Невозможно открыть файл! \n";
exit(1);
}
else
{
ouFile.write(reinterpret_cast<char*>(obj),sizeof(*obj));
if ( !ouFile )
{
cerr << "Невозможно записать объект! \n";
exit(1);
}
}
}
Person* read_obj(int k )
{
Person* ptr;
ifstream inFile;
inFile.open("g12u4.txt", ios::binary );
inFile.seekg(k*sizeof(Person));
inFile.read(reinterpret_cast<char*>(ptr),sizeof(Person));
return ptr;
}
Подскажите, пожалуйста.