#include <fstream> //for file streams
#include <iostream>
using std::fstream;
#include <cstdlib>

using namespace std;
////////////////////////////////////////////////////////////////

class person //class of persons
{
  protected:
    char name[80]; //person’s name
    int age; //person’s age
  public:
    void getData() //get person’s data
    {
      cout << "\n Enter name: "; cin >> name;
      cout << " Enter age: "; cin >> age;
    }
    void showData() //display person’s data
    {
      cout << "\n Name: " << name;
      cout << "\n Age: " << age;
    }
};
////////////////////////////////////////////////////////////////
main()
{
  char ch;
  person pers; //create person object
  //fstream file("group.dat", ios::ate | ios::out );
  fstream file("group.dat", ios::ate | ios::in | ios::out | ios::binary); //create input/output file
  file.seekp(0, ios::end);
  if( !file ){
    cout<<"Cannot create a file"<<endl; 
    system("pause"); 
    exit(1);
  }
  do //data from user to file
  {
    cout << "\nEnter person’s data:";
    pers.getData(); //get one person’s data
    //write to file
    file.write( reinterpret_cast<char*>(&pers), sizeof(pers) );
    cout << "Enter another person (y/n)? ";
    cin >> ch;
  }  while(ch=='y'); //quit on ‘n’
  
  file.seekg(0); //reset to start of file
  //read first person
  file.read( reinterpret_cast<char*>(&pers), sizeof(pers) );
  while( !file.eof() ) //quit on EOF
  {
    cout << "\nPerson:"; //display person
    pers.showData(); //read another person
    file.read( reinterpret_cast<char*>(&pers), sizeof(pers) );
  }
  cout << endl;
  file.close();
  system("pause");
}
