codice:
#include <cstdlib>
#include <iostream>
#include <string>
#include <fstream>

using namespace std;

struct Tipostud{
                string Cognome;
                string Nome;
                string Matr;
                int Eta;
                int AnnoIscrizione;
                string Citta;
                };
                typedef Tipostud* Pstud;

void Inserimento (Tipostud &, char &);
void getfile(Pstud [],Pstud [],Pstud []);
void insort(Pstud [],int ,Pstud ,char );

int main(){

    int Numpers=3,Lrec=sizeof(Tipostud);
    /*char chr;
    Tipostud studente;
    cout<<"Numero di persone da inserire: ";
    cin>>Numpers;
    fstream filepers;
    filepers.open("studenti.bin",ios::in|ios::out|ios::binary|ios::ate);
    if (!filepers)
      filepers.open("studenti.bin",ios::out|ios::binary|ios::trunc);
    while(Numpers>0){
    Inserimento(studente,chr);
    if (chr=='s') {
    filepers.seekp(0,ios::end);
    filepers.write((char*)&studente,Lrec);
    Numpers--;
    }}
    filepers.close();*/
    Pstud PuntaP1[Numpers],PuntaP2[Numpers],PuntaP3[Numpers];
    getfile(PuntaP1,PuntaP2,PuntaP3);




    system("pause");
    return 0;

}

   void Inserimento (Tipostud &pers1, char &ch)

{

   cout << "INSERIMENTO PERSONE" << endl << endl;
   cout << "Cognome= ";
   cin >> pers1.Cognome;
   cout << "Nome= ";
   cin >> pers1.Nome;
   cout << "Eta'= ";
   cin >> pers1.Eta;
   cout << "Matricola= ";
   cin >> pers1.Matr;
   cout << "Anno Iscrizione= ";
   cin >> pers1.AnnoIscrizione;
   cout << "Citta'= ";
   cin >> pers1.Citta;
   cout << "Salva (s/n)? ";
   cin >> ch;

}

void getfile(Pstud PuntaP1[],Pstud PuntaP2[],Pstud PuntaP3[]){

     Tipostud studente;
     ifstream file;
     file.open("studenti.bin",ios::in|ios::binary|ios::ate);
     if (!file)
      file.open("studenti.bin",ios::out|ios::binary|ios::trunc);

     int Lrec=sizeof(Tipostud);
     int Numstud=file.tellg()/Lrec;
     file.seekg(0,ios::beg);
     for(int i=1;i<Numstud;i++){
             file.read((char*) &studente,Lrec);
             PuntaP1[i]=new Tipostud;
             *PuntaP1[i]=studente;
             PuntaP2[i]=PuntaP1[i];
             PuntaP3[i]=PuntaP1[i];
             insort(PuntaP1,i,PuntaP1[i],'c');
             insort(PuntaP2,i,PuntaP2[i],'m');
             insort(PuntaP3,i,PuntaP3[i],'e');
             }
     file.close();
}

void insort(Pstud Punt[],int n,Pstud Temp,char ord){

     int j;
     Punt[0]=Temp;
     j=n-1;
     if(ord=='c'){
                  while(strcmp(Punt[j]->Cognome.c_str(),Punt[0]->Cognome.c_str())>0){
                  Punt[j+1]=Punt[j];
                  j--;
                  }
                  }
     else if(ord=='m'){
                  while(strcmp(Punt[j]->Matr.c_str(),Punt[0]->Matr.c_str())>0){
                  Punt[j+1]=Punt[j];
                  j--;
                  }
                  }
     else{

                while(Punt[j]->Eta > Punt[0]->Matr) 
                  {
                  Punt[j+1]=Punt[j];
                  j--;
                  }
                  }
            Punt[j+1]=Punt[0];
     }
Che volevi fare con il codice in rosso ?