Concetti Chiave
- Il programma gestisce file di testo mediante operazioni di apertura, lettura e scrittura.
- Supporta la lettura di file utilizzando sia ifstream per leggere riga per riga che operazioni più dirette con char.
- Include un metodo per scrivere dati in un file esistente, utilizzando ofstream in modalità append.
- Gestisce la chiusura dei file per liberare risorse e garantire che i dati siano salvati correttamente.
- Utilizza controlli per verificare se il file è stato aperto correttamente prima di procedere con le operazioni.
#include
#include
#include
using namespace std;
int main(){
Come si apre e legge un file?
string line;
ifstream myfile("example.txt");
if (myfile.is_open()){
cout
cout
while(getline(myfile,line)){
cout
cout
}
cout
myfile.close();
}else{
//cout
cout
}
cout
char* linea;
linea=new char[100];
cout
cout
cout
cout
cout
while(cin.getline(linea,100)){
// ctrl+z termina l'input, solo se fornito in prima posizione
// in posizioni diversa dalla prima rende nullo l'input che precede
cout
}
cout
cout
Rilettura del file
myfile.open("example.txt",ios::in);
while(getline(myfile,line)){
cout
}
myfile.close();
cout
// cin.ignore(); non funziona a causa di ctrl+z che chiude lo stream di input
// cin e lo lascia chiuso: sembra che clear() lo ripristini nel senso che lo
// riapre
cin.clear();
char s=cin.get();
cout
myfile.open("example.txt",ios::in);
char parola[20];
while(myfile>>parola){
cout
}
cout
myfile.close();
//delete myfile;
Scrittura nel file
ofstream myfile2;
cout
myfile2.open("example.txt",ios::ate|ios::app);
myfile2
cin.getline(linea, 100);
myfile2
myfile2.close();
}
Domande da interrogazione
- Come si apre e si legge un file in C++?
- Qual è il metodo per scrivere nel file in C++?
- Come si gestisce la rilettura di un file già aperto?
Per aprire e leggere un file in C++, si utilizza la classe `ifstream`. Dopo aver verificato che il file è aperto con `is_open()`, si può leggere riga per riga utilizzando `getline()`, come mostrato nel codice.
Per scrivere in un file in C++, si utilizza la classe `ofstream`. Si può aprire il file in modalità append con `ios::ate|ios::app` e poi utilizzare `cin.getline()` per leggere l'input da scrivere nel file.
Per rileggere un file, è necessario chiuderlo e riaprirlo utilizzando `myfile.open("example.txt", ios::in)`. Dopo averlo riaperto, si può utilizzare `getline()` o l'operatore di estrazione `>>` per leggere il contenuto del file.