Failu apstrāde tiek izmantota, lai pastāvīgi saglabātu datus datorā. Izmantojot failu apstrādi, mēs varam saglabāt savus datus sekundārajā atmiņā (cietajā diskā).
Kā sasniegt failu apstrādi
Lai panāktu failu apstrādi, mums ir jāveic šādas darbības:
1. SOLIS. Faila nosaukuma piešķiršana
2. SOLIS. Faila atvēršana
3. SOLIS. Datu ierakstīšana failā
4. SOLIS. Datu nolasīšana no faila
5. SOLIS. Faila aizvēršana.
Straumē C++ :-
Mēs dodam ievadi izpildprogrammai, un izpildes programma atdod izvadi. Baitu secību, kas tiek dota kā ievade izpildprogrammai, un baitu secību, kas nāk kā izpildprogrammas izvade, sauc par straumi. Citiem vārdiem sakot, straumes nav nekas cits kā datu plūsma secībā.
Ievades un izvades darbība starp izpildprogrammu un ierīcēm, piemēram, tastatūru un monitoru, ir pazīstama kā konsoles I/O darbība. Ievades un izvades darbība starp izpildprogrammu un failiem ir pazīstama kā diska I/O darbība.
Klases failu straumes operācijām:-
C++ I/O sistēma satur klašu kopu, kas nosaka failu apstrādes metodes. Tie ietver ifstream, ofstream un fstream klases. Šīs klases ir atvasinātas no fstream un no atbilstošās iostream klases. Šīs klases, kas paredzētas diska failu pārvaldībai, tiek deklarētas fstream, un tāpēc mums ir jāiekļauj šis fails jebkurā programmā, kas izmanto failus.
1. iOS:-
- ios apzīmē ievades izvades straumi.
- Šī klase ir bāzes klase citām klasēm šajā klašu hierarhijā.
- Šī klase satur nepieciešamās iespējas, kuras ievades un izvades operācijām izmanto visas pārējās atvasinātās klases.
2. istream:-
- istream apzīmē ievades straumi.
- Šī klase ir atvasināta no klases “ios”.
- Šī klase apstrādā ievades straumi.
- Ekstrakcijas operators(>>) šajā klasē ir pārslogots, lai apstrādātu ievades straumes no failiem uz programmas izpildi.
- Šī klase deklarē tādas ievades funkcijas kā get (), getline () un read ().
3. otrā pusē:-
- ostream apzīmē izvades straumi.
- Šī klase ir atvasināta no klases “ios”.
- Šī klase apstrādā izvades straumi.
- Ievietošanas operators (<<) šajā klasē ir pārslogots, lai apstrādātu izvades straumes uz failiem no programmas izpildes.
- Šī klase deklarē tādas izvades funkcijas kā put () un write ().
4. Streambuf:-
java Būla
- Šajā klasē ir rādītājs, kas norāda uz buferi, ko izmanto ievades un izvades straumju pārvaldībai.
5. fstreambase:-
- Šī klase nodrošina failu plūsmām kopīgas darbības. Kalpo par bāzi fstream, ifstream un ārpusstraumes klasēm.
- Šajā klasē ir atvērta () un close () funkcija.
6. ifstream:-
- Šī klase nodrošina ievades darbības.
- Tajā ir atvērta () funkcija ar noklusējuma ievades režīmu.
- Pārmanto funkcijas get(), getline(), read(), seekg() un tellg() no istream.
7. ārpus plūsmas:-
- Šī klase nodrošina izvades darbības.
- Tajā ir atvērta () funkcija ar noklusējuma izvades režīmu.
- Pārmanto funkcijas put(), write(), seekp() un tellp() no ostream.
8. fstream:-
- Šī klase nodrošina atbalstu vienlaicīgām ievades un izvades darbībām.
- Pārmanto visas funkcijas no istream un ostream klasēm, izmantojot iostream.
9. failu bufs:-
- Tās mērķis ir iestatīt failu buferus lasīšanai un rakstīšanai.
- Faila garuma noteikšanai varam izmantot arī faila bufera dalībnieka funkciju.
Programmā C++ faili galvenokārt tiek apstrādāti, izmantojot trīs klases fstream, ifstream, ofstream, kas pieejamas fstream headerfile.
ārpus plūsmas: Straumējiet mācību stundu, lai rakstītu failos
ifstream: Straumējiet mācību stundu, lai lasītu no failiem
fstream: Straumējiet nodarbību, lai lasītu un rakstītu no failiem/uz failiem.

Tagad pirmais solis, lai atvērtu konkrēto failu lasīšanas vai rakstīšanas darbībai. Mēs varam atvērt failu ar
1. faila nosaukuma nodošana konstruktorā objekta izveides laikā
2. izmantojot atvērto metodi
Par piem.
Atveriet failu, izmantojot konstruktoru
ifstream (const char* faila nosaukums, ios_base::openmode režīms = ios_base::in);
ifstream fin(faila nosaukums, atvērtais režīms) pēc noklusējuma openmode = ios::in
ifstream fin(faila nosaukums);Atveriet failu, izmantojot atvēršanas metodi
Noklusējuma konstruktora izsaukšana
ifstream beigas;
fin.open(faila nosaukums, atvērtais režīms)
fin.open(faila nosaukums);
Režīmi:
| Biedrs Konstants | Apzīmē For | Piekļuve |
|---|---|---|
| iekšā * | ievade | Fails atvērts lasīšanai: iekšējais straumes buferis atbalsta ievades darbības. |
| ārā | izvade | Fails atvērts rakstīšanai: iekšējais straumes buferis atbalsta izvades darbības. |
| binārs | binārs | Darbības tiek veiktas binārajā režīmā, nevis teksta režīmā. |
| ēda | beigās | Izvades pozīcija sākas faila beigās. |
| lietotne | pievienot | Visas izvades darbības notiek faila beigās, pievienojot tā esošajam saturam. |
| bagāžnieks | apcirpt | Jebkurš saturs, kas failā bija pirms tā atvēršanas, tiek atmests. |
Noklusētie atvēršanas režīmi:
| ifstream | ios::in |
| ārpus plūsmas | ios::out |
| fstream | ios::in | ios::out |
Problēmas paziņojums : lai lasītu un rakstītu failu programmā C++.
Piemēri:
Input : Welcome in techcodeview.com. Best way to learn things. -1 Output : Welcome in techcodeview.com. Best way to learn things.>
Tālāk ir norādīta ieviešana, izmantojot ifstream un ārpusstraumes nodarbības .
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;> }> |
>
>
Laika sarežģītība: O(n)
Palīgtelpa: O(1)
Tālāk ir norādīta ieviešana, izmantojot fstream klase .
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;> }> |
>
>
Laika sarežģītība: O(n)
Palīgtelpa: 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>>nosaukums;> > >cout<<>'
Enter the Fee:'>;> >cin>>maksa;> > >ofstream fout(>'d:/student.doc'>);> > >fout<' '<' '/write data to the file student fout.close(); ifstream fin('d:/student.doc'); fin>>rno>>nosaukums>>maksa; //nolasīt datus no faila students fin.close(); cout<' '<' '< return 0; }> |
>
>
Laika sarežģītība: O(1)
Palīgtelpa: 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>>nosaukums>>maksa;>> >fin.close();> > >cout<' '<' '< return 0; }> |
vai Kat timpf ir jurists
>
>
Laika sarežģītība: O(1)
Palīgtelpa: O(50)