C++ fstream Reads and writes several objects to disk
#include <fstream> #include <iostream> using namespace std; class person //class of persons { protected:/*ww w . jav a 2 s . c o m*/ 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; } }; int main() { char ch; person pers; //create person object fstream file; //create input/output file //open for append file.open("GROUP.DAT", ios::app | ios::out | ios::in | ios::binary ); 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; return 0; }