1  #include <iostream>
  2  #include <fstream>
  3  #include "Student.h"
  4  using namespace std;
  5  
  6  void displayStudent(const Student& student)
  7  {
  8    cout << student.getFirstName() << " ";
  9    cout << student.getMi() << " ";
 10    cout << student.getLastName() << " ";
 11    cout << student.getScore() << endl;
 12  }
 13  
 14  int main()
 15  { 
 16    fstream binaryio; // Create stream object
 17    binaryio.open("student.dat", ios::out | ios::binary);
 18  	
 19    Student student1("FirstName1", 'A', "LastName1", 10);
 20    Student student2("FirstName2", 'B', "LastName2", 20);
 21    Student student3("FirstName3", 'C', "LastName3", 30);
 22    Student student4("FirstName4", 'D', "LastName4", 40);
 23    Student student5("FirstName5", 'E', "LastName5", 50);
 24    Student student6("FirstName6", 'F', "LastName6", 60);
 25    Student student7("FirstName7", 'G', "LastName7", 70);
 26    Student student8("FirstName8", 'H', "LastName8", 80);
 27    Student student9("FirstName9", 'I', "LastName9", 90);
 28    Student student10("FirstName10", 'J', "LastName10", 100);
 29  
 30    binaryio.write(reinterpret_cast<char*>
 31      (&student1), sizeof(Student));
 32    binaryio.write(reinterpret_cast<char*>
 33      (&student2), sizeof(Student));
 34    binaryio.write(reinterpret_cast<char*>
 35      (&student3), sizeof(Student));
 36    binaryio.write(reinterpret_cast<char*>
 37      (&student4), sizeof(Student));
 38    binaryio.write(reinterpret_cast<char*>
 39      (&student5), sizeof(Student));
 40    binaryio.write(reinterpret_cast<char*>
 41      (&student6), sizeof(Student));
 42    binaryio.write(reinterpret_cast<char*>
 43      (&student7), sizeof(Student));
 44    binaryio.write(reinterpret_cast<char*>
 45      (&student8), sizeof(Student));
 46    binaryio.write(reinterpret_cast<char*>
 47      (&student9), sizeof(Student));
 48    binaryio.write(reinterpret_cast<char*>
 49      (&student10), sizeof(Student));
 50  
 51    binaryio.close();
 52  
 53    // Read student back from the file
 54    binaryio.open("student.dat", ios::in | ios::binary);
 55  
 56    Student studentNew;
 57  
 58    binaryio.seekg(2 * sizeof(Student));
 59  
 60    cout << "Current position is " << binaryio.tellg() << endl;
 61  
 62    binaryio.read(reinterpret_cast<char*>
 63      (&studentNew), sizeof(Student));
 64  
 65    displayStudent(studentNew);
 66  
 67    cout << "Current position is " << binaryio.tellg() << endl;
 68  
 69    binaryio.close();
 70  
 71    return 0;
 72  }