Gestione files
In C++ (in C si possono gestire files ma con altre librerie) la gestione dei files ricalca gli stessi concetti della libreria <iostream> ovvero considerando un file come uno stream da cui leggere o su cui scrivere.
Lettura di files
1) Lettura con operatore >>
Partiamo dalle istruzioni principali:
– #include <fstream>
importa la libreria;
– ifstream file("file.txt")
-> crea una variabile di tipo ifstream (stream in lettura) di nome “file.txt” ed apre il file;
– file.close();
-> chiude il file.
– file >> string;
-> legge dal file una stringa di lunghezza massima 10. Si ricorda che valgono le stesse regole di cin, quindi se prima della lunghezza massima viene letto uno spazio o un carattere di fine riga, si interrompe la lettura dal file e viene memorizzata la stringa fino a quel punto;
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ifstream file("file.txt");
char string[10];
file >> string;
cout << string;
file.close();
return 0;
}
2) Lettura tramite get
– file.get(c)
-> richiede un carattere da file che memorizza nella variabile c (di tipo char). Questa funzione get restituisce true se ci sono ancora caratteri nel file, oppure false se il file è terminato.
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ifstream file("file.txt");
char c;
while (file.get(c)) {
cout << c;
}
file.close();
return 0;
}
3) Lettura tramite getline
– file.getline(string, n) -> legge n caratteri da file e li memorizza su string. Se leggendo i caratteri trova un carattere “a capo”, termina la lettura. Questa funzione restituisce true se ci sono ancora caratteri nel file, oppure false se il file è terminato.
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ifstream file("file.txt");
char string[10];
while (file.getline(string, 10)) {
cout << string << endl;
}
file.close();
return 0;
}
Scrittura di files
Qui le istruzioni principali:
– #include <fstream> importa la libreria;
– ofstream file(“file.txt“) -> crea una variabile di tipo ofstream (stream in scrittura) di nome “file.txt” ed apre il file;
– file.close(); -> chiude il file.
– file << string; -> scrive sul file qualunque contenuto di tipo testo.
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ofstream file("file.txt");
for (int i=0; i<100; i++) {
file << i << " ";
}
file.close();
return 0;
}