Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Fondamenti di Informatica
R. Basili
a.a. 2006-2007
Sintesi
Motivazioni
Definizione di file in C++
Un esempio
Uso dei file
Esempi
Esercizi
Motivazioni
il programma in esecuzione legge
(sequenzialmente) una sequenza di
caratteri prodotti "al volo" dall'utente
(tramite tastiera)
il programma in esecuzione scrive
(sequenzialmente) una sequenza di
caratteri sullo schermo (o stampante)
problema:
dati in ingresso e risultati prodotti sono
"volatili
si potrebbe voler conservare i risultati prodotti
(per usi futuri)
si potrebbe voler conservare i dati in ingresso
(per poterli riutilizzare in una nuova
esecuzione, .)
File
Un File "insieme di dati" organizzati
secondo una certa struttura, identificato da
un nome, e memorizzato in memoria
secondaria
Noi considereremo solo file di caratteri
sequenza di caratteri (stampabili e "di
controllo")
(altre possibilit: file binari, tipo immagine, .)
file di caratteri:
costruito dall'utente usando un editore di testi
prodotto da un programma in esecuzione (p.es.
risultati di un programma C++)
Esempio di file
esempio gi noto: il file che contiene il
testo di un programma C++
int<spazi o>main()<eoln>
{<eoln>
<tab>char<spazi o>ch;<eoln>
<tab>ch=X;<eoln>
<tab>cout<spazi o><<<spazi o>ch;<eoln>
}<eoln>
<eof>
Caratteri
Di controllo
Files in C++: dichiarazione
Gestione dell'ingresso/uscita su file in un
programma C++:
(1) includere la libreria <fstream>
(2) dichiarare (una o pi) variabili di "tipo
file (es. fstream file_dati; )
tipi consentiti:
ifstream: variabile file di sola lettura
ofstream: variabile file di sola scrittura
fstream: variabile file di lettura/scrittura
(3) associare una variabile di tipo file a un
oggetto di tipo file (tramite la funzione
open())
(es. file_dati.open(c:\Dati00.txt);
Files in C++: Accesso
(4) L'accesso ad un file consente di
leggere e/o scrivere su file. Si utilizzano i
normali comandi >> e << su una variabile
di tipo file (analogamente a cin e cout)
OSS: >> si pu usare con una variabile di
tipo lettura (ifstream), << con una
variabile di tipo scrittura (ofstream)
(5) al termine dell'uso di una variabile di
tipo file, questa va "chiusa" usando la
funzione close()
Files in C++: Apertura/chiusura
All'apertura viene assegnato alla variabile
fstream uno specifico File del SO
ad esempio: c:\Dati00.txt
OSS:
se un file non viene "chiuso" esplicitamente, viene
chiuso automaticamente quando il programma
termina
una variabile di tipo file pu essere aperta,
chiusa, riaperta, .., pi volte in uno stesso
programma
Esempio
#include <iostream>
#include <fstream>
int main() {
int i, j, k; char ch;
ifstream inFile; //dichiarazione file sola lettura
inFile.open("dati.txt");// associa inFile al
// file dati.txt
inFile >> i >> j >> ch;
inFile.close(); /* "chiusura" del file */
cout<<i<<' '<<j<<' '<<ch; //scrive su schermo i
//valori letti
}
Risultato: 15 5 Q
15bb5bQ<eoln>
<eof>
"dati.txt"
MEMORIA
"esempio.cpp"
"dati_1"