vuoi
o PayPal
tutte le volte che vuoi
Utilizzo del contenitore standard list.
Overload degli operatori >> e <<
#include <cstdlib>
#include <iostream>
#include <string>
#include <list>
#include <fstream>
#include <iterator>
#include <algorithm>
using namespace std;
// Elemento della lista
struct Persona {
string nome;
int eta;
friend ostream &operator<<(ostream &os, const Persona &x);
friend istream &operator>>(istream &is, Persona &x);
};
// Overloading dell'operatore <<
ostream &operator<<(ostream &os, const Persona &x)
{ os << x.nome << '\t' << x.eta;
return os;
}
// Overloading dell'operatore >>
istream &operator>>(istream &is, Persona &x)
{ is >> x.nome >> x.eta;
return is;
}
int main()
{ list <Persona> temp;
// Vettore di prova che contiene gli elementi da inserire nella lista
Persona p[] = { {"Laura", 19}, {"Giorgio", 21}, {"Andrea", 20},
{"Luigi", 25}, {"Anna", 24}
};
// Inizializzazione della lista
for(unsigned i = 0; i < sizeof p / sizeof(Persona); i++)
temp.push_back(p[i]);
// Creazione e apertura del file dove memorizzare la lista
ofstream fElenco("Elenco");
if(!fElenco) {
cerr << "Errore di apertura del file" << endl;
return 1;
}
// Serializzazione della lista
copy( temp.begin(), temp.end(), ostream_iterator <Persona> (fElenco, "\n") );
fElenco.close(); // chiusura del file
// Apertura in lettura del file che contiene i dati della lista
ifstream fPersone("Elenco");
if(!fPersone) {
cerr << "Errore di apertura del file" << endl;
return 1;