Ti consiglio di leggere così i dati

codice:
    file >> pprova[i].nome >> pprova[i].eta;
    while(file)
    {
        cout << pprova[i].nome << " " << pprova[i].eta << endl;
        i++;
    file >> pprova[i].nome >> pprova[i].eta;
    }
Inoltre assicurati che il file venga cancellato prima di fare una prova visto che i dati sono aggiunti ai precedenti.