Anteprima
Vedrai una selezione di 1 pagina su 2
Programma C++: list e overload operatori stream Pag. 1
1 su 2
Disdici quando vuoi 162x117
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Sintesi
Programma in C++: serializzazione di un container list su un file.
Utilizzo del contenitore standard list.
Overload degli operatori >> e <<
Estratto del documento

#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;

Dettagli
Publisher
2 pagine
82 download