Failų tvarkymas naudojamas duomenims nuolat saugoti kompiuteryje. Naudodami failų tvarkymą galime saugoti savo duomenis antrinėje atmintyje (kietajame diske).
Kaip pasiekti failų tvarkymą
Norėdami tvarkyti failus, turime atlikti šiuos veiksmus:
1 ŽINGSNIS – Failo pavadinimo suteikimas
2 ŽINGSNIS – Failo atidarymas
3 ŽINGSNIS – duomenų įrašymas į failą
4 ŽINGSNIS – duomenų nuskaitymas iš failo
5 ŽINGSNIS – failo uždarymas.
Srautas C++ :-
Mes suteikiame įvestį vykdomajai programai, o vykdymo programa grąžina išvestį. Baitų seka, pateikta kaip vykdomosios programos įvestis, ir baitų seka, gaunama kaip vykdomosios programos išvestis, vadinamos srautu. Kitaip tariant, srautai yra ne kas kita, kaip duomenų srautas seka.
Įvesties ir išvesties operacija tarp vykdomosios programos ir įrenginių, pvz., klaviatūros ir monitoriaus, vadinama konsolės I/O operacija. Įvesties ir išvesties operacija tarp vykdomosios programos ir failų yra žinoma kaip disko I/O operacija.
Failų srauto operacijų klasės: -
C++ I/O sistemoje yra klasių rinkinys, apibrėžiantis failų tvarkymo metodus. Tai apima ifstream, ofstream ir fstream klases. Šios klasės yra išvestos iš fstream ir iš atitinkamos iostream klasės. Šios klasės, skirtos disko failams valdyti, yra deklaruojamos fstream, todėl mes turime įtraukti šį failą į bet kurią programą, kuri naudoja failus.
1. ios:-
- „ios“ reiškia įvesties išvesties srautą.
- Ši klasė yra pagrindinė kitų šios klasės hierarchijos klasių klasė.
- Šioje klasėje yra būtinos priemonės, kurias įvesties ir išvesties operacijoms naudoja visos kitos išvestinės klasės.
2. istream:-
- istream reiškia įvesties srautą.
- Ši klasė yra kilusi iš klasės „ios“.
- Ši klasė tvarko įvesties srautą.
- Ištraukimo operatorius(>>) šioje klasėje yra perkrautas, kad galėtų apdoroti įvesties srautus iš failų į programos vykdymą.
- Ši klasė deklaruoja įvesties funkcijas, tokias kaip get (), getline () ir read ().
3. kitoje pusėje:-
- ostream reiškia išvesties srautą.
- Ši klasė yra kilusi iš klasės „ios“.
- Ši klasė tvarko išvesties srautą.
- Įterpimo operatorius (<<) yra perkrautas šioje klasėje, kad galėtų apdoroti išvesties srautus į failus iš programos vykdymo.
- Ši klasė deklaruoja išvesties funkcijas, tokias kaip put () ir write ().
4. srautas:-
tat pilna forma
- Šioje klasėje yra žymeklis, nukreipiantis į buferį, kuris naudojamas įvesties ir išvesties srautams valdyti.
5. fstreambase:-
- Šioje klasėje pateikiamos operacijos, bendros failų srautams. Naudojamas kaip fstream, ifstream ir ofstream klasių pagrindas.
- Šioje klasėje yra open() ir close() funkcijos.
6. ifstream:-
- Šioje klasėje pateikiamos įvesties operacijos.
- Jame yra funkcija open() su numatytuoju įvesties režimu.
- Paveldi funkcijas get(), getline(), read(), seekg() ir tellg() iš istream.
7. iš srauto:-
- Ši klasė suteikia išvesties operacijas.
- Jame yra funkcija open() su numatytuoju išvesties režimu.
- Paveldi funkcijas put(), write(), seekp() ir tellp() iš ostream.
8. fstream:-
- Ši klasė palaiko vienalaikes įvesties ir išvesties operacijas.
- Paveldi visas funkcijas iš istream ir ostream klasių per iostream.
9. failų bufas:-
- Jo tikslas yra nustatyti failų buferius skaityti ir rašyti.
- Taip pat galime naudoti failo buferio nario funkciją, kad nustatytų failo ilgį.
C++ kalba failai daugiausia tvarkomi naudojant tris klases fstream, ifstream, ofstream, esančias fstream antraštės faile.
iš srauto: Perduokite klasę, kad galėtumėte rašyti į failus
ifstream: Perduokite klasę, kad galėtumėte skaityti iš failų
fstream: Perduokite klasę, kad galėtumėte skaityti ir rašyti iš / į failus.

Dabar pirmas žingsnis norint atidaryti konkretų failą skaitymo arba rašymo operacijai. Failą galime atidaryti pagal
1. failo pavadinimo perdavimas konstruktoriuje objekto kūrimo metu
2. naudojant atvirąjį metodą
Dėl pvz.
Atidarykite failą naudodami konstruktorių
ifstream (const char* failo pavadinimas, ios_base::openmode režimas = ios_base::in);
ifstream fin(failo pavadinimas, openmode) pagal numatytuosius nustatymus openmode = ios::in
ifstream fin(failo pavadinimas);Atidarykite failą naudodami atvirojo metodą
Numatytojo konstruktoriaus iškvietimas
ifstream galas;
fin.open(failo pavadinimas, atvirasis režimas)
fin.open(failo pavadinimas);
Režimai:
| Narys Constant | Reiškia | Prieiga |
|---|---|---|
| į * | įvestis | Failas atidarytas skaitymui: vidinis srauto buferis palaiko įvesties operacijas. |
| išeiti | išvestis | Failas atidarytas rašymui: vidinis srauto buferis palaiko išvesties operacijas. |
| dvejetainis | dvejetainis | Operacijos atliekamos dvejetainiu režimu, o ne tekstu. |
| valgė | pabaigoje | Išvesties pozicija prasideda failo pabaigoje. |
| programėlė | pridėti | Visos išvesties operacijos atliekamos failo pabaigoje, pridedamos prie esamo jo turinio. |
| bagažinė | sutrumpinti | Bet koks turinys, buvęs faile prieš jį atidarant, atmetamas. |
Numatytieji atidarymo režimai:
| ifstream | ios::in |
| už srauto | ios::out |
| fstream | ios::in | ios::out |
Problemos pareiškimas : Norėdami skaityti ir rašyti failą C++.
Pavyzdžiai:
Input : Welcome in techcodeview.com. Best way to learn things. -1 Output : Welcome in techcodeview.com. Best way to learn things.>
Žemiau pateikiamas įgyvendinimas naudojant ifstream ir ofstream klasės .
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;> }> |
>
>
Laiko sudėtingumas: O(n)
Pagalbinė erdvė: O(1)
Žemiau pateikiamas įgyvendinimas naudojant fstream klasė .
C++
/* 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;> }> |
>
>
Laiko sudėtingumas: O(n)
Pagalbinė erdvė: 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>>vardas;> > >cout<<>'
Enter the Fee:'>;> >cin>>mokestis;> > >ofstream fout(>'d:/student.doc'>);> > >fout<' '<' '/write data to the file student fout.close(); ifstream fin('d:/student.doc'); fin>>rno>>vardas>>mokestis; //skaityti duomenis iš failo studentas fin.close(); cout<' '<' '< return 0; }> |
>
>
Laiko sudėtingumas: O(1)
Pagalbinė erdvė: O(1)
C++
Android versijos istorija
// 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>>vardas>>mokestis;>> >fin.close();> > >cout<' '<' '< return 0; }> |
>
>
Laiko sudėtingumas: O(1)
Pagalbinė erdvė: O(50)