Ragazzi ho un piccolo problema con una funzione che deve mostrare un oggetto con più prestiti, confrontandolo con dei record presenti in un file.
Siccome può capitare che due o più record abbiano la stessa quantità di prestiti, la funzione cerca prima il più grande e poi lo riconfronta stampando tutti quelli che hanno lo stesso numero.
Forse con il codice riesco a spiegarmi meglio:

codice:
void piu_pres(){
	
	libro current;
	libro max;

	system("CLS");
	ifstream lib("Libri", ios::in | ios::binary);

	if(!lib){
		cout<<endl<<"Impossibile aprire il file";
		abort();
	}

	lib.read((char*)&current, sizeof(libro));					

	max=current;	

	while(!lib.eof()){
		if(max.get_prest() < current.get_prest()) 
			max=current;
		lib.read((char*)&current, sizeof(libro));
		}
        lib.seekg(ios::beg);

	lib.read((char*)&current, sizeof(libro));

       cout<<"Il/i lettore/i con piu' prestiti e'/sono:"<< endl << endl;

	while(!lib.eof()){
		cout<<endl;
		if(max.get_prest() == current.get_prest()) 
			current.get_libro();
		lib.read((char*)&current, sizeof(libro));
		}
	
	in.close();

	lib.close();
	system("pause");

}
I metodi della classe funzionano e sono testati, get_libro() serve a stampare a video la scheda del libro.
In pratica su una lista di libri si deve stampare quello o quelli con più prestiti.
Dopo la prima lettura deve effettuarne un altra, il puntatore messo in ios::beg mostra la posizione -1, ma poi la read() non legge e non capisco perché.

Vi chiedo un consiglio o magari se conoscete un algoritmo migliore...
Vi ringrazio anticipatamente