C++ ifstream seekg Seeks particular person in file
#include <fstream> #include <iostream> using namespace std; class person// ww w.j a va 2 s . com { protected: char name[80]; int age; public: void getData() { cout << "\n Enter name: "; cin >> name; cout << " Enter age: "; cin >> age; } void showData(void) //display person's data { cout << "\n Name: " << name; cout << "\n Age: " << age; } }; int main() { person pers; ifstream infile; //create input file infile.open("GROUP.DAT", ios::in | ios::binary); //open file infile.seekg(0, ios::end); //go to 0 bytes from end int endposition = infile.tellg(); //find where we are int n = endposition / sizeof(person); //number of persons cout << "\nThere are " << n << " persons in file"; cout << "\nEnter person number: "; cin >> n; int position = (n-1) * sizeof(person); //number times size infile.seekg(position); //bytes from start //read one person infile.read( reinterpret_cast<char*>(&pers), sizeof(pers) ); pers.showData(); cout << endl; return 0; }