În acest articol, vă vom arăta cum să citiți și să scrieți într-un fișier în limbajul de programare C ++ utilizând mai multe exemple. Pentru a înțelege operațiile de fișiere C ++, cum ar fi citirea și scrierea, trebuie să înțelegem mai întâi conceptul de flux în C ++.
Ce este un flux?
Un flux este pur și simplu un flux de date sau caractere. Există două tipuri de fluxuri: fluxuri de intrare și fluxuri de ieșire. Un flux de intrare este utilizat pentru a citi datele de pe un dispozitiv de intrare extern, cum ar fi o tastatură, în timp ce un flux de ieșire este utilizat pentru a scrie date pe dispozitivul de ieșire extern, cum ar fi un monitor. Un fișier poate fi considerat atât o sursă de intrare, cât și o sursă de ieșire.
În C ++, folosim un flux pentru a trimite sau a primi date către sau de la o sursă externă.
Putem folosi clase încorporate pentru a accesa un flux de intrare / ieșire, adică ios.
Iată ierarhia clasei de flux a limbajului de programare C ++:
Obiectele cin și cout sunt utilizate pentru a citi datele de la tastatură și, respectiv, pentru a afișa ieșirea pe monitor. În plus, ifstream, care înseamnă fluxul de fișiere de intrare, este utilizat pentru a citi un flux de date dintr-un fișier, iar ofstream, care înseamnă fluxul de fișiere de ieșire, este utilizat pentru a scrie un flux de date într-un fișier.
Fișierul iostram.h conține toate clasele standard necesare de flux de intrare / ieșire în limbajul de programare C ++.
Exemple
Acum că înțelegeți noțiunile de bază ale fluxurilor, vom discuta următoarele exemple pentru a vă ajuta să înțelegeți mai bine operațiile de fișiere în C ++:
- Exemplul 1: Deschideți și închideți un fișier
- Exemplul 2: Scrieți într-un fișier
- Exemplul 3: Citiți dintr-un fișier
- Exemplul 4: Citiți și scrieți într-un fișier
- Exemplul 5: Citiți și scrieți într-un fișier binar
Exemplul 1: Deschideți și închideți un fișier
În acest exemplu de program, vom demonstra cum să deschideți / creați un fișier și cum să închideți fișierul în C ++. După cum puteți vedea în programul de mai jos, am inclus biblioteca necesară pentru operațiile de fișiere.
Pentru a deschide și închide un fișier, avem nevoie de un obiect ofstream. Apoi, pentru a citi sau a scrie într-un fișier, trebuie să deschidem fișierul. Am inclus fișierul antet fstream la linia numărul-1, astfel încât să putem accesa clasa ofstream.
Am declarat un myFile_Handler ca obiect ofstream în interiorul funcției principale. Putem apoi folosi funcția open () pentru a crea un fișier gol și funcția close () pentru a închide fișierul.
#includefolosind spațiu de numeore;
intprincipal()
{
ofstream MyFile_Handler;
// Fișier deschis
MyFile_Handler.deschis(„Fișier_1.txt”);
// Închidere fișier
MyFile_Handler.închide();
întoarcere 0;
}
Acum, vom compila programul și vom examina rezultatul. După cum puteți vedea în fereastra de ieșire de mai jos, fișierul File_1.txt a fost creat după executarea programului. Dimensiunea fișierului este zero, deoarece nu am scris niciun conținut în fișier.
Exemplul 2: Scrieți într-un fișier
În exemplul anterior de program, v-am arătat cum să deschideți un fișier și cum să închideți fișierul. Acum, vă vom arăta cum să scrieți ceva într-un fișier.
Putem scrie într-un fișier folosind operatorul de inserare a fluxului, adică<<. 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.
#includefolosind spațiu de numeore;
intprincipal()
{
ofstream MyFile_Handler;
// Fișier deschis
MyFile_Handler.deschis(„Fișier_1.txt”);
// Scrieți în fișier
MyFile_Handler<< „Acesta este un exemplu de fișier de testare. ' <<endl;
MyFile_Handler<< „Aceasta este a doua linie a fișierului. ' <<endl;
// Închidere fișier
MyFile_Handler.închide();
întoarcere 0;
}
Acum, vom compila programul de mai sus și îl vom executa. După cum puteți vedea mai jos, am scris cu succes în fișierul File_1.txt.
Exemplul 3: Citiți dintr-un fișier
În exemplele anterioare, v-am arătat cum să scrieți conținut într-un fișier. Acum, să citim conținutul din fișierul pe care l-am creat în Exemplul-2 și să afișăm conținutul pe dispozitivul de ieșire standard, adică pe monitor.
Folosim funcția getline () pentru a citi linia completă din fișier și apoi cout pentru a imprima linia pe monitor.
#include#include
#include
folosind spațiu de numeore;
intprincipal()
{
ifstream myFile_Handler;
înșirați MyLine;
// Deschidere fișier în modul de citire
MyFile_Handler.deschis(„Fișier_1.txt”);
dacă(MyFile_Handler.este deschis())
{
// Continuați să citiți fișierul
in timp ce(getline(myFile_Handler, myLine))
{
// imprimați linia pe ieșirea standard
cost <<Linia mea<<endl;
}
// Închidere fișier
MyFile_Handler.închide();
}
altceva
{
cost << „Imposibil de deschis fișierul!”;
}
întoarcere 0;
}
Acum, vom imprima conținutul File_1.txt folosind următoarea comandă: cat File_1.txt. Odată ce compilăm și executăm programul, este clar că rezultatul se potrivește cu conținutul fișierului. Prin urmare, am citit cu succes fișierul și am imprimat conținutul fișierului pe monitor.
Exemplul 4: Citiți și scrieți într-un fișier
Până în prezent, v-am arătat cum să deschideți, să citiți, să scrieți și să închideți un fișier. În C ++, putem citi și scrie într-un fișier în același timp. Pentru a citi și a scrie într-un fișier, trebuie să obținem un obiect fstream și să deschidem fișierul în modul ios :: in și ios :: out.
În acest exemplu, mai întâi scriem un conținut în fișier. Apoi, citim datele din fișier și le imprimăm pe monitor.
#include#include
#include
folosind spațiu de numeore;
intprincipal()
{
fstream myFile_Handler;
înșirați MyLine;
// Fișier deschis
MyFile_Handler.deschis(„Fișier_1.txt”, ios::în |ios::afară);
// Verificați dacă fișierul s-a deschis
dacă(!MyFile_Handler)
{
cost << „Fișierul nu s-a deschis!”;
Ieșire(1);
}
// Scrieți în fișier
MyFile_Handler<< „1. Acesta este un alt exemplu de fișier de testare. ' <<endl;
MyFile_Handler<< „2. Aceasta este a doua linie a fișierului. ' <<endl;
MyFile_Handler.seekg(ios::implora);
// Citiți fișierul
dacă(MyFile_Handler.este deschis())
{
// Continuați să citiți fișierul
in timp ce(getline(myFile_Handler, myLine))
{
// imprimați linia pe ieșirea standard
cost <<Linia mea<<endl;
}
// Închidere fișier
MyFile_Handler.închide();
}
altceva
{
cost << „Imposibil de deschis fișierul!”;
}
MyFile_Handler.închide();
întoarcere 0;
}
Acum, vom compila și executa programul.
Exemplul 5: Citiți și scrieți într-un fișier binar
În acest exemplu, vom declara o clasă și apoi vom scrie obiectul într-un fișier binar. Pentru a simplifica acest exemplu, am declarat clasa Angajat cu o variabilă publică emp_id. Apoi, vom citi fișierul binar și vom imprima ieșirea pe monitor.
#include#include
folosind spațiu de numeore;
clasăAngajat
{
public:
intemp_id;
};
intprincipal()
{
ofstream binOutFile_Handler;
ifstream binInFile_Handler;
Angajat empObj_W, empObj_R;
// Fișier deschis
binOutFile_Handler.deschis(„angajat.dat”, ios::afară |ios::binar);
// Verificați dacă fișierul s-a deschis
dacă(!binOutFile_Handler)
{
cost << „Fișierul nu s-a deschis!”;
Ieșire(1);
}
// Inițializați empObj_W
empObj_W.emp_id = 1512;
// Scrieți în fișier
binOutFile_Handler.scrie((char *) &empObj_W,mărimea(Angajat));
binOutFile_Handler.închide();
dacă(!binOutFile_Handler.bun())
{
cost << „A apărut o eroare în timpul scrierii fișierului binar!” <<endl;
Ieșire(2);
}
// Acum, să citim fișierul angajat.dat
binInFile_Handler.deschis(„angajat.dat”, ios::în |ios::binar);
// Verificați dacă fișierul s-a deschis
dacă(!binInFile_Handler)
{
cost << „Fișierul nu s-a deschis!”;
Ieșire(3);
}
// Citiți conținutul fișierului binar
binInFile_Handler.citit((char *) &empObj_R,mărimea(Angajat));
binInFile_Handler.închide();
dacă(!binInFile_Handler.bun())
{
cost << „A apărut o eroare la citirea fișierului binar!” <<endl;
Ieșire(4);
}
// Imprimați rezultatul empObj_R
cost << „Detalii despre angajat:” <<endl;
cost << 'Card de identitate al angajatului : ' <<empObj_R.emp_id <<endl;
întoarcere 0;
}
Concluzie
Fișierele sunt utilizate în principal pentru stocarea datelor și joacă un rol important în programarea din lumea reală. În acest articol, v-am arătat cum să utilizați diferite operații de fișiere cu limbajul de programare C ++, lucrând mai multe exemple. Mai mult, v-am arătat cum să citiți și să scrieți date atât în fișiere text, cât și în fișiere binare.