C++ fstream Save array object to file

Description

C++ fstream Save array object to file

#include <iostream>
#include <fstream>              // for file streams
using namespace std;
class Measure                    // English Measure class
{
   private://from   w  ww . ja va  2  s .c  o m
   int feet;
   float inches;
   public:
   Measure() : feet(0), inches(0.0) // constructor (no args)
   {  }                           // constructor (two args)
   Measure(int ft, float in) : feet(ft), inches(in)
   {  }
   void getdist()              // get length from user
   {
      cout << "\n   Enter feet: ";  cin >> feet;
      cout << "   Enter inches: ";  cin >> inches;
   }
   void showdist()             // display distance
   { cout << feet << "\'-" << inches << '\"'; }
};
int main()
{
   char ch;
   Measure dist;                 // create a Measure object
   fstream file;                  // create input/output file
   // open it for append
   file.open("DIST.DAT", ios::binary | ios::app |
   ios::out | ios::in );
   do                             // data from user to file
   {
      cout << "\nMeasure";
      dist.getdist();             // get a distance
      // write to file
      file.write( (char*)&dist, sizeof(dist) );
      cout << "Enter another distance (y/n)? ";
      cin >> ch;
   }
   while(ch=='y');                // quit on 'n'
   file.seekg(0);                 // reset to start of file
   // read first distance
   file.read( (char*)&dist, sizeof(dist) );
   int count = 0;
   while( !file.eof() )           // quit on EOF
   {
      cout << "\nMeasure " << ++count << ": "; // display dist
      dist.showdist();
      file.read( (char*)&dist, sizeof(dist) );  // read another
   }                                         // distance
   cout << endl;
   return 0;
}



PreviousNext

Related