Esercitazione 7 Giovedi 4 Dicembre 2008
Esercizio 1
In C++ le operazioni di I/O su file sono definite nella libreria fstream.
Per lavorare su un file occorre seguire i seguenti passi:
Ad esempio considerate il seguente programma che legge 5 float da un file dati.dat e ne calcola la media
#include <fstream>
#include <iostream>
using namespace std;
main(){
double val,somma=0.0;
int i;
ifstream inFile ("dati.dat");
/* oppure
ifstream inFile;
inFile.open("dati.dat");
*/
if (!inFile) {
cout << "Errore nell'apertura del
file" << endl;
} else {
for(i=0; i<5; ++i) {
inFile >> val;
somma +=val;
}
inFile.close();
}
cout << "Media=" << somma/i;
}
Provate ad eseguirlo creando (es. con un editor e dalla shell) prima un file dati.dat con almeno 5 numeri (costanti float) nella stessa directory dove eseguite il programma.
Modificate ora il programma in modo da leggere da un file dati.dat
N numeri float, ordinarli con una
delle funzioni viste nella esercitazione
3, e quindi stampare i valori ordinati su un file
con nome ouput.dat aperto in output usando ofstream.
Supponiamo che in un file di testo (senza i caratteri / e *) si possano inserire dei commenti stile C racchiusi tra i delimitatori /* … */.
Scrivere un programma che dato in input un file con commenti (es. input.dat), produce in output il file ripulito da tutti i commenti (es ouput.dat).
Supponiamo di inserire sempre all’inizio dei nostri programmi C++ una descrizione del programma racchiusa tra commenti /* … */ .
Scrivere ora un programma che, preso in input un file lista.dat
contenente una lista di nomi di programmi da analizzare, costruisce un file indice.dat
dove per ogni programma in lista.dat si indicare il nome e di seguito (o in un
nuovo paragrafo) la descrizione estratta dal commento
all’inizio del programma stesso.
Ad esempio supponiamo che lista.dat contenga prog1.cpp prog2.cpp
Se prog1.cpp contiene il commento
/* Primo esempio di prova */
e prog2.cpp contiene il commento
/* Secondo esempio di prova */
allora il file indice.cpp conterra’ ad esempio:
prog1.cpp:
Primo esempio di prova
prog2.cpp:
Secondo esempio di prova