Problema eof()

di il
2 risposte

Problema eof()

Ragazzi devo stampare tutti gli elementi presenti su un file, non conoscendo quanti ne sono,
ho provato così:
void stampa(L l){
     fstream in;
     
       in.open("prenotazioni.txt",ios::in);
                     
                      while(!in.eof()){
                                       in>>l->nome;
                                       in>>l->cognome;
                                       in>>l->eta;
                                       in>>l->visita;
                                       
                                       cout<<l->nome<<endl;
                                       cout<<l->cognome<<endl;
                                       cout<<l->eta<<endl;
                                       cout<<l->visita<<endl;
                                       cout<<endl;
                                       }
Il problema è che mi stampa l'ultima serie (nom, cognom ...) 2 volte, come se uscisse dal ciclo DOPO il carattere terminatore, come mai?

2 Risposte

  • Re: Problema eof()

    In raggiunge eof, l'estrappolazione non avviene, i dati non sono modificati, il cout presenta i dati vecchi.
  • Re: Problema eof()

    Giusto xD
    risolto
        while(!in.eof()){L p=new Record;
                                           in>>p->nome;
                                           in>>p->cognome;
                                           in>>p->eta;
                                           in>>p->visita;
                                           
                                           cout<<p->nome<<endl;
                                           cout<<p->cognome<<endl;
                                           cout<<p->eta<<endl;
                                           cout<<p->visita<<endl;
                                           p->next=l;
                                           l=p;
                                           cout<<endl;
                                           }
Devi accedere o registrarti per scrivere nel forum
2 risposte