In questo articolo, ti mostreremo come leggere e scrivere in un file nel linguaggio di programmazione C ++ usando diversi esempi. Per comprendere le operazioni di file C ++ come Read and Write, dobbiamo prima capire il concetto di flusso in C++.
Cos'è un flusso?
Un flusso è semplicemente un flusso di dati o caratteri. Esistono due tipi di flussi: flussi di input e flussi di output. Un flusso di input viene utilizzato per leggere i dati da un dispositivo di input esterno come una tastiera, mentre un flusso di output viene utilizzato per scrivere i dati sul dispositivo di output esterno come un monitor. Un file può essere considerato sia come una sorgente di input che di output.
In C ++, utilizziamo un flusso per inviare o per ricevere dati da o verso una fonte esterna.
Possiamo utilizzare le classi integrate per accedere a un flusso di input/output, i.e., "IOS".
Ecco la gerarchia della classe di streaming del linguaggio di programmazione C ++:
Gli oggetti "CIN" e "Cout" vengono utilizzati per leggere i dati dalla tastiera e visualizzare l'uscita sul monitor, rispettivamente. Inoltre, "ifstream", che sta per "flusso di file di input", viene utilizzato per leggere un flusso di dati da un file e "Of Stream", che sta per "Stream di file di output", viene utilizzato per scrivere un flusso di dati a un file.
L'iostram.Il file h "contiene tutte le classi di flusso di input/output standard richieste nel linguaggio di programmazione C ++.
Esempi
Ora che capisci le basi dei flussi, discuteremo dei seguenti esempi per aiutarti a comprendere meglio le operazioni di file in C ++:
Esempio 1: aprire e chiudere un file
In questo programma di esempio, dimostreremo come aprire/creare un file e come chiudere il file in c++. Come puoi vedere nel programma seguente, abbiamo incluso la libreria richiesta per le operazioni di file.
Per aprire e chiudere un file, abbiamo bisogno di un oggetto di Stream. Quindi, per leggere o scrivere su un file, dobbiamo aprire il file. Abbiamo incluso il file di intestazione fstream alla riga numero 1 in modo da poter accedere alla classe Stream.
Abbiamo dichiarato un myfile_handler come oggetto di Stream all'interno della funzione principale. Possiamo quindi utilizzare la funzione Open () per creare un file vuoto e la funzione chiusura () per chiudere il file.
#includere
Utilizzo dello spazio dei nomi std;
int main ()
Of Stream myfile_handler;
// File aperto
myfile_handler.Apri ("File_1.TXT");
// File Close
myfile_handler.vicino();
restituzione 0;
Ora compileremo il programma ed esamineremo l'output. Come puoi vedere nella finestra di output in basso, il "file_1.Il file txt "è stato creato dopo aver eseguito il programma. La dimensione del file è zero poiché non abbiamo scritto alcun contenuto nel file.
Esempio 2: scrivere su un file
Nel programma di esempio precedente, ti abbiamo mostrato come aprire un file e come chiudere il file. Ora ti mostreremo come scrivere qualcosa in un file.
Possiamo scrivere in un file usando l'operatore di inserimento del flusso, i.e., "<<”. In this program, we have used the file handler and insertion operator to write two lines in the file. The insertion operator (“<<”) indicates that we are inserting the string into the output file stream object.
#includere
Utilizzo dello spazio dei nomi std;
int main ()
Of Stream myfile_handler;
// File aperto
myfile_handler.Apri ("File_1.TXT");
// Scrivi nel file
myfile_handler << "This is a sample test File. " << endl;
myfile_handler << "This is the second line of the file. " << endl;
// File Close
myfile_handler.vicino();
restituzione 0;
Ora, compileremo il programma sopra ed eseguiremo. Come puoi vedere di seguito, abbiamo scritto correttamente nel file file_1.TXT.
Esempio 3: leggi da un file
Negli esempi precedenti, ti abbiamo mostrato come scrivere il contenuto in un file. Ora leggiamo il contenuto dal file che abbiamo creato nell'esempio-2 e visualizziamo il contenuto sul dispositivo di output standard, i.e., il monitor.
Usiamo la funzione getline () per leggere la riga completa dal file e quindi "cout" per stampare la riga sul monitor.
#includere
#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()
ifstream myfile_handler;
String Myline;
// File Aprire nella modalità di lettura
myfile_handler.Apri ("File_1.TXT");
if (myfile_handler.è aperto())
// Continua a leggere il file
while (getline (myfile_handler, myline))
// Stampa la linea sull'uscita standard
cout << myLine << endl;
// File Close
myfile_handler.vicino();
altro
cout << "Unable to open the file!";
restituzione 0;
Ora stamperemo il contenuto di file_1.txt usando il seguente comando: Cat File_1.TXT. Una volta compilato ed eseguito il programma, è chiaro che l'output corrisponde al contenuto del file. Pertanto, abbiamo letto correttamente il file e stampato il contenuto del file sul monitor.
Esempio 4: leggi e scrivi su un file
Finora, ti abbiamo mostrato come aprire, leggere, scrivere e chiudere un file. In C ++, possiamo anche leggere e scrivere in un file contemporaneamente. Per leggere e scrivere in un file, dobbiamo ottenere un oggetto fstream e aprire il file nella modalità "ios :: in" e "ios :: out".
In questo esempio, scriviamo prima alcuni contenuti nel file. Quindi, leggiamo i dati dal file e li stampiamo sul monitor.
#includere
#includere
#includere
Utilizzo dello spazio dei nomi std;
int main ()
fstream myfile_handler;
String Myline;
// File aperto
myfile_handler.Apri ("File_1.txt ", ios :: in | ios :: out);
// controlla se il file è stato aperto
Se(!myfile_handler)
cout << "File did not open!";
uscita (1);
// Scrivi nel file
myfile_handler << "1. This is another sample test File. " << endl;
myfile_handler << "2. This is the second line of the file. " << endl;
myfile_handler.Seekg (ios :: beg);
// Leggi il file
if (myfile_handler.è aperto())
// Continua a leggere il file
while (getline (myfile_handler, myline))
// Stampa la linea sull'uscita standard
cout << myLine << endl;
// File Close
myfile_handler.vicino();
altro
cout << "Unable to open the file!";
myfile_handler.vicino();
restituzione 0;
Ora compileremo ed eseguiremo il programma.
Esempio 5: leggi e scrivi su un file binario
In questo esempio, dichiareremo una classe e quindi scriveremo l'oggetto a un file binario. Per semplificare questo esempio, abbiamo dichiarato la classe dei dipendenti con una variabile pubblica EMP_ID. Quindi, leggeremo il file binario e stamperemo l'output sul monitor.
#includere
#includere
Utilizzo dello spazio dei nomi std;
dipendente di classe
pubblico:
int emp_id;
;
int main ()
Ofstream binoutfile_handler;
ifstream bininfile_handler;
Dipendente empobj_w, empobj_r;
// File aperto
binoutfile_handler.aperto ("dipendente.dat ", ios :: out | ios :: binario);
// controlla se il file è stato aperto
Se(!binoutfile_handler)
cout << "File did not open!";
uscita (1);
// Inizializza eMPOBJ_W
empobj_w.emp_id = 1512;
// Scrivi nel file
binoutfile_handler.scrivere ((char *) & empobj_w, sizeof (dipendente));
binoutfile_handler.vicino();
Se(!binoutfile_handler.Bene())
cout << "Error occured during writing the binary file!" << endl;
uscita (2);
// Ora, leggiamo il dipendente.file dat
bininfile_handler.aperto ("dipendente.dat ", ios :: in | ios :: binario);
// controlla se il file è stato aperto
Se(!bininfile_handler)
cout << "File did not open!";
uscita (3);
// Leggi il contenuto del file binario
bininfile_handler.leggi ((char *) & empobj_r, sizeof (dipendente));
bininfile_handler.vicino();
Se(!bininfile_handler.Bene())
cout << "Error occured during reading the binary file!" << endl;
uscita (4);
// Stampa l'output di empobj_r
cout << "Details of the Employee : " << endl;
cout << "Employee ID : " << empObj_R.emp_id << endl;
restituzione 0;
Conclusione
I file vengono utilizzati principalmente per archiviare i dati e svolgono un ruolo importante nella programmazione del mondo reale. In questo articolo, ti abbiamo mostrato come utilizzare varie operazioni di file con il linguaggio di programmazione C ++ lavorando attraverso diversi esempi. Inoltre, ti abbiamo mostrato come leggere e scrivere i dati in file di testo e file binari.