La gestione dei file viene utilizzata per archiviare i dati in modo permanente in un computer. Utilizzando la gestione dei file possiamo archiviare i nostri dati nella memoria secondaria (disco rigido).
Come ottenere la gestione dei file
Per ottenere la gestione dei file dobbiamo seguire i seguenti passaggi: -
PASSO 1-Nominare un file
PASSO 2-Apertura di un file
PASSO 3-Scrittura dei dati nel file
PASSO 4-Lettura dei dati dal file
PASSO 5-Chiusura di un file.
Stream in C++ :-
Diamo input al programma in esecuzione e il programma in esecuzione restituisce l'output. La sequenza di byte fornita come input al programma in esecuzione e la sequenza di byte che arriva come output dal programma in esecuzione sono chiamate stream. In altre parole, i flussi non sono altro che il flusso di dati in una sequenza.
L'operazione di input e output tra il programma in esecuzione e i dispositivi come tastiera e monitor è nota come operazione I/O della console. L'operazione di input e output tra il programma in esecuzione e i file è nota come operazione I/O del disco.
Classi per operazioni di flusso di file: -
Il sistema di I/O del C++ contiene un insieme di classi che definiscono i metodi di gestione dei file. Questi includono le classi ifstream, ofstream e fstream. Queste classi derivano da fstream e dalla corrispondente classe iostream. Queste classi, progettate per gestire i file su disco, sono dichiarate in fstream e quindi dobbiamo includere questo file in qualsiasi programma che utilizza file.
1. ios:-
- ios sta per flusso di input output.
- Questa classe è la classe base per le altre classi in questa gerarchia di classi.
- Questa classe contiene le funzionalità necessarie utilizzate da tutte le altre classi derivate per le operazioni di input e output.
2. istream:-
- istream sta per flusso di input.
- Questa classe deriva dalla classe 'ios'.
- Questa classe gestisce il flusso di input.
- L'operatore di estrazione (>>) è sovraccaricato in questa classe per gestire i flussi di input dai file all'esecuzione del programma.
- Questa classe dichiara funzioni di input come get(), getline() e read().
3. dall'altro lato:-
- ostream sta per flusso di output.
- Questa classe deriva dalla classe 'ios'.
- Questa classe gestisce il flusso di output.
- L'operatore di inserimento(<<) viene sovraccaricato in questa classe per gestire i flussi di output sui file dall'esecuzione del programma.
- Questa classe dichiara funzioni di output come put() e write().
4. streambuff:-
come convertire un carattere in una stringa
- Questa classe contiene un puntatore che punta al buffer utilizzato per gestire i flussi di input e output.
5. fstreambase:-
- Questa classe fornisce operazioni comuni ai flussi di file. Serve come base per le classi fstream, ifstream e ofstream.
- Questa classe contiene le funzioni open() e close().
6. ifstream: -
- Questa classe fornisce operazioni di input.
- Contiene la funzione open() con modalità di input predefinita.
- Eredita le funzioni get(), getline(), read(), searchg() e tellg() da istream.
7. ofstream:-
- Questa classe fornisce operazioni di output.
- Contiene la funzione open() con modalità di output predefinita.
- Eredita le funzioni put(), write(), seep() e tellp() da ostream.
8. fstream:-
- Questa classe fornisce il supporto per operazioni di input e output simultanee.
- Eredita tutte le funzioni dalle classi istream e ostream tramite iostream.
9. filebuff:-
- Il suo scopo è impostare i buffer dei file in lettura e scrittura.
- Possiamo anche utilizzare la funzione membro del buffer di file per determinare la lunghezza del file.
In C++, i file vengono gestiti principalmente utilizzando le tre classi fstream, ifstream, ofstream disponibili nell'headerfile fstream.
fuori flusso: Classe di streaming per scrivere sui file
ifstream: Classe di streaming per leggere da file
a valle: Classe di streaming per leggere e scrivere da/su file.

Ora il primo passo per aprire il file particolare per l'operazione di lettura o scrittura. Possiamo aprire il file con
1. passaggio del nome del file nel costruttore al momento della creazione dell'oggetto
2. utilizzando il metodo aperto
Per es.
Apri File utilizzando il costruttore
ifstream (const char* nome file, ios_base::openmode modalità = ios_base::in);
ifstream fin(nomefile, openmode) per impostazione predefinita openmode = ios::in
ifstream fin(nome file);Apri file utilizzando il metodo aperto
Chiamata del costruttore predefinito
fine ifstream;
fin.open(nome file, modalità aperta)
fin.open(nomefile);
Modalità:
| Membro costante | Sta per | Accesso |
|---|---|---|
| In * | ingresso | File aperto in lettura: il buffer del flusso interno supporta le operazioni di input. |
| fuori | produzione | File aperto in scrittura: il buffer del flusso interno supporta le operazioni di output. |
| binario | binario | Le operazioni vengono eseguite in modalità binaria anziché in testo. |
| mangiò | alla fine | La posizione di output inizia alla fine del file. |
| app | aggiungere | Tutte le operazioni di output avvengono alla fine del file, aggiungendosi al suo contenuto esistente. |
| tronco | troncare | Qualsiasi contenuto esistente nel file prima che fosse aperto viene eliminato. |
Modalità di apertura predefinite:
| ifstream | ios::in |
| ofstream | ios::fuori |
| fstream | ios::in | ios::fuori |
Dichiarazione problema : leggere e scrivere un file in C++.
Esempi:
Input : Welcome in techcodeview.com. Best way to learn things. -1 Output : Welcome in techcodeview.com. Best way to learn things.>
Di seguito è riportata l'implementazione utilizzando classi ifstream e ofstream .
C++
/* File Handling with C++ using ifstream & ofstream class object*/> /* To write the Content in File*/> /* Then to read the content of file*/> #include> /* fstream header file for ifstream, ofstream,> >fstream classes */> #include> using> namespace> std;> // Driver Code> int> main()> {> >// Creation of ofstream class object> >ofstream fout;> >string line;> >// by default ios::out mode, automatically deletes> >// the content of file. To append the content, open in ios:app> >// fout.open('sample.txt', ios::app)> >fout.open(>'sample.txt'>);> >// Execute a loop If file successfully opened> >while> (fout) {> >// Read a Line from standard input> >getline(cin, line);> >// Press -1 to exit> >if> (line ==>'-1'>)> >break>;> >// Write line in file> >fout << line << endl;> >}> >// Close the File> >fout.close();> >// Creation of ifstream class object to read the file> >ifstream fin;> >// by default open mode = ios::in mode> >fin.open(>'sample.txt'>);> >// Execute a loop until EOF (End of File)> >while> (getline(fin, line)) {> > >// Print line (read from file) in Console> >cout << line << endl;> >}> >// Close the file> >fin.close();> >return> 0;> }> |
>
>
Complessità temporale: O(n)
Spazio ausiliario: O(1)
Di seguito è riportata l'implementazione utilizzando classe fstream .
C++
apice in Illustrator
/* File Handling with C++ using fstream class object */> /* To write the Content in File */> /* Then to read the content of file*/> #include> /* fstream header file for ifstream, ofstream,> >fstream classes */> #include> using> namespace> std;> // Driver Code> int> main()> {> >// Creation of fstream class object> >fstream fio;> >string line;> >// by default openmode = ios::in|ios::out mode> >// Automatically overwrites the content of file, To append> >// the content, open in ios:app> >// fio.open('sample.txt', ios::in|ios::out|ios::app)> >// ios::trunc mode delete all content before open> >fio.open(>'sample.txt'>, ios::trunc | ios::out | ios::in);> >// Execute a loop If file successfully Opened> >while> (fio) {> >// Read a Line from standard input> >getline(cin, line);> >// Press -1 to exit> >if> (line ==>'-1'>)> >break>;> >// Write line in file> >fio << line << endl;> >}> >// Execute a loop until EOF (End of File)> >// point read pointer at beginning of file> >fio.seekg(0, ios::beg);> >while> (fio) {> >// Read a Line from File> >getline(fio, line);> >// Print line in Console> >cout << line << endl;> >}> >// Close the file> >fio.close();> >return> 0;> }> |
>
>
Complessità temporale: O(n)
Spazio ausiliario: O(1)
C++
Q: write a single file handling program in c++ to reading and writing data on a file.> #include> #include> > using> namespace> std;> main()> {> >int> rno,fee;> >char> name[50];> > >cout<<>'Enter the Roll Number:'>;> >cin>>rno;> > >cout<<>'
Enter the Name:'>;> >cin>>nome;> > >cout<<>'
Enter the Fee:'>;> >cin>>tariffa;> > >ofstream fout(>'d:/student.doc'>);> > >fout<' '<' '/write data to the file student fout.close(); ifstream fin('d:/student.doc'); fin>>rno>>nome>>tariffa; //legge i dati dal file student fin.close(); cout<' '<' '< return 0; }> |
>
>
Complessità temporale: O(1)
Spazio ausiliario: O(1)
C++
// Q: WA C++ file handling program to read data from the file called student.doc> #include> #include> using> namespace> std;> main()> {> >int> rno,fee;> >char> name[50];> > >ifstream fin(>'d:/student.doc'>);> > >fin>>rno>>nome>>tariffa;>//read data from the file student> > >fin.close();> > >cout<' '<' '< return 0; }> |
>
>
Complessità temporale: O(1)
Spazio ausiliario: O(50)