char nome [100]; int matricola; |
// Apriamo subito il file per controllare quanti studenti ci sono dentro ifstream f ("studenti.dat"); // Posizioniamoci alla fine del file f.seekg (0, ios::end); // la lunghezza del file divisa per la dimenzione dello struct // fornisce il numero di studenti già inseriti int l = f.tellg() / sizeof(studente); // Chiediamo all'utente di inserire un numero da 1 a l int n; do {
// Dichiariamo una variabile di tipo studente studente s; // Posizioniamo il flusso all'inizio del blocco che ci interessa f.seekg ((n-1)*sizeof(studente), ios::beg); // Leggiamo il blocco nella variabile s f.read ((char*)&s, sizeof(studente)); // A questo punto il file non ci serve più f.close (); // Scriviamo a video i dati estratti cout << "Nome: " << s.nome << "\nMatricola: " << s.matricola << endl; return 0; |