APERTURA ESPLICITA DI UN FILE
ofstream fout;
fout.open(“amici.dat”, ios::out);
ifstream fin;
fin.open(“amici.dat”, ios::in);
ofstream fout;
fout.open(“amici.dat”, ios::app);
GESTIONE ERRORI SU FILE
Nei programmi che utilizzano file è opportuno aggiungere
opportuni controlli per eventuali errori che si possono
presentare durante
l’APERTURA DEL FILE:
•FILE NON ESISTENTE
•ERRORE PER UN ACCESSO NON CORRETTO ALLA
MEMORIA DI MASSA
… Esistono due modalità

Prima modalità
If(!nomestream){
cout<<“Errore nell’apertura del file
”<<endl;}
Nell’esempio di lettura dell’archivio
amici.dat
if(!fin){
cout<<“Errore nell’apertura del file
”<<endl;}
else {
while(fin>>nome)//legge dal file
fino alla fine
{
cout<<nome<<endl; //scrive a video nome
}
fin.close(); //chiude file
}
Return 0;
Seconda modalità
viene usato il metodo
fail()
che restituisce true se si verifica un errore su
file
if(nomestream.fail()){
cout<<“Errore nell’apertura del
file ”<<endl;}
else {….
}
Controllo sulla fine del file
1° metodo
while (fin>>variabile)

2° metodo
Uso del metodo eof()

Sintassi per uso eof()
nomestream>> variabile
while(!nomestream.eof())
{cout<<variabile<<endl;
nomestream>>variabile;
}
Gestione di una rubrica telefonica
con nome e telefono attraverso un menù
Rubrica_telefonica.cpp
Crea()
Aggiungi() Visualizza()
Ricerca (string n)
la scrittura sulla rubrica avviene nome e telefono uno di seguito all’altro:
archivio<<nome<<“ “<<telefono<<endl<<;
//rubrica.cpp
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
const string
NOMEARCH=“rubrica.dat”; //nome
fisico dichiarato come costante
fstream archivio;
string nome, telefono;
//Procedura che crea la rubrica
Void crea()
archivio.open(NOMEARCH.c_str(),ios::out);
cout<<“inserisci un nome *=fine):”;
cin>>nome;
while(nome!=“*”){
cout<<“Telefono:”;
cin>>telefono;
archivio<<nome<<“ “<<telefono<<endl;
cout<<“inserisci un altro nome(*=fine)”;
cin>>nome;
}
Archivio.close();
}
esercizi
Realizza la procedura :
•Aggiungi() che aggiunge un nome e un
telefono
•Visualizza() che mostra il contenuto del
file
•Ricerca() che dato un nome lo cerca e se
presente stampa il telefono
Scarica

0.2 file2