Sei sulla pagina 1di 12

C++: Input/Output da e su File

Tratto da “C++ e file di testo, guida alla creazione e alla


lettura di un file”, di Riccardo Baglio – 4ID, L.S. Tron
Il Concetto di File:
Il termine file, traducibile dall'inglese come
"archivio” o “documento”, viene utilizzato per
riferirsi a un contenitore di informazioni o
dati in formato digitale, tipicamente presenti su
un supporto digitale di memorizzazione.
Un file è una sorgente o un deposito di

informazioni che si può leggere e scrivere;


questa sorgente/deposito ha anche delle
proprietà, come nome o estensione, che
possono essere modificate.
Operazioni preliminari:
Nell’introduzione del codice sorgente, insieme
alla libreria <iostream>, viene inclusa anche
la libreria <fstream>, che consente al
programma la gestione dei file di testo.
Il file può quindi essere dichiarato come una

semplice variabile:
 ifstream per leggere da un file esistente
 ofstream per scrivere su un file
Cosa dobbiamo fare?
Creiamo una variabile di tipo ofstream e
apriamo il file su cui scrivere
ofstream fout(“prova.txt");
Usiamo la variabile fout al posto di cout

fout << “Sto scrivendo su un file.“;


Chiudiamo il file per confermare i dati scritti

fout.close();
Scrittura su un file
int main ()
{
ofstream fout (“prova.txt");
fout << “Sto scrivendo su un file.“;
fout.close();
return 0;
}
Cosa abbiamo fatto?
Creiamo una variabile di tipo ifstream e
apriamo il file da cui vogliamo leggere
ifstream fin(“prova.txt");
Usiamo la variabile fin al posto di cin

fin >> variabile;


Chiudiamo il file

fin.close();
Lettura di un file
int main ()
{
int variabile = 0;
ifstream fin(“prova.txt");
fin >> variabile;
fin.close();
cout << “Variabile: ” << variabile <<
endl;
return 0;
}
Esercizio
Scrivete un semplice programma che legga da
tastiera il vostro nome e cognome e li scriva su
un file chiamato “anagrafe.txt”.
Nello stesso programma leggete anche la

vostra età e fatela stampare su una riga diversa.


Trucchi, consigli e attenzioni
Resta di stucco, è un barbatrucco
Barbapapà
Errori nell’apertura
 Non sempre l’apertura E’ buona cosa
di un file può andare a controllare, quindi,
buon fine che il file sia stato
Problemi al disco aperto correttamente
rigido o semplicemente prima di usare lo
l’assenza di spazio stream
possono far fallire
l’operazione open
Esempio di controllo in apertura
ofstream fout (“esempio.txt”); // anche
ifstream
if (file.is_open())
{
… fai quel che devi …
}
else
{
cout << “Errore di apertura” << endl;
}
Lettura di righe
 Esattamente come cin, gli oggetti di tipo
ifstream si fermano al primo spazio incontrato
nella riga.
Per leggere una intera riga (per esempio se il

cognome è composto da più parole) si può usare


getline

string line;
while ( getline (fin,line) ) {
cout << line << endl;
}