Filhåndtering bruges til at gemme data permanent på en computer. Ved hjælp af filhåndtering kan vi gemme vores data i sekundær hukommelse (harddisk).
Sådan opnås filhåndteringen
For at opnå filhåndtering skal vi følge følgende trin:
TRIN 1 - Navngivning af en fil
TRIN 2-Åbning af en fil
TRIN 3-Skriv data ind i filen
TRIN 4-Læsning af data fra filen
TRIN 5-Lukning af en fil.
Streams i C++:-
Vi giver input til det eksekverende program, og eksekveringsprogrammet giver outputtet tilbage. Sekvensen af bytes givet som input til det eksekverende program og sekvensen af bytes, der kommer som output fra det eksekverende program, kaldes stream. Med andre ord er strømme intet andet end strømmen af data i en sekvens.
Input- og outputoperationen mellem det eksekverende program og enhederne som tastatur og skærm er kendt som konsol I/O-drift. Input- og outputoperationen mellem det eksekverende program og filer er kendt som disk I/O-operation.
Klasser til filstream-operationer: -
I/O-systemet i C++ indeholder et sæt klasser, som definerer filhåndteringsmetoderne. Disse inkluderer ifstream, ofstream og fstream klasser. Disse klasser er afledt af fstream og fra den tilsvarende iostream-klasse. Disse klasser, designet til at administrere diskfilerne, er deklareret i fstream, og derfor skal vi inkludere denne fil i ethvert program, der bruger filer.
1. ios:-
- ios står for input output stream.
- Denne klasse er basisklassen for andre klasser i dette klassehierarki.
- Denne klasse indeholder de nødvendige faciliteter, der bruges af alle de andre afledte klasser til input- og outputoperationer.
2. istream:-
- istream står for input stream.
- Denne klasse er afledt af klassen 'ios'.
- Denne klasse håndtere inputstrøm.
- Ekstraktionsoperatøren(>>) er overbelastet i denne klasse til at håndtere inputstrømme fra filer til programafviklingen.
- Denne klasse erklærer inputfunktioner såsom get(), getline() og read().
3. på den anden side:-
- ostream står for output stream.
- Denne klasse er afledt af klassen 'ios'.
- Denne klasse håndterer outputstrøm.
- Indsættelsesoperatoren (<<) er overbelastet i denne klasse til at håndtere outputstrømme til filer fra programafviklingen.
- Denne klasse erklærer outputfunktioner såsom put() og write().
4. streambuf:-
git status -s
- Denne klasse indeholder en pointer, som peger på bufferen, som bruges til at styre input- og outputstrømmene.
5. fstreambase:-
- Denne klasse giver operationer, der er fælles for filstrømmene. Fungerer som base for fstream, ifstream og ofstream klasse.
- Denne klasse indeholder funktionen open() og close().
6. ifstream:-
- Denne klasse giver input-operationer.
- Den indeholder open() funktion med standard inputtilstand.
- Arver funktionerne get(), getline(), read(), seekg() og tellg()-funktionerne fra istream.
7. ofstream:-
- Denne klasse giver output-operationer.
- Den indeholder open() funktion med standard outputtilstand.
- Arver funktionerne put(), write(), seekp() og tellp() fra ostreamen.
8. fstream:-
- Denne klasse giver understøttelse af samtidige input- og outputoperationer.
- Arver alle funktionerne fra istream og ostream klasser gennem iostream.
9. filebuf:-
- Dens formål er at indstille filbufferne til at læse og skrive.
- Vi kan også bruge filbuffermedlemsfunktionen til at bestemme længden af filen.
I C++ behandles filer hovedsageligt ved at bruge tre klasser fstream, ifstream, ofstream tilgængelig i fstream headerfile.
ofstream: Stream klasse for at skrive på filer
ifstream: Stream klasse for at læse fra filer
fstream: Stream klasse til både at læse og skrive fra/til filer.

Nu er det første trin til at åbne den bestemte fil til læse- eller skriveoperation. Vi kan åbne filen pr
1. sende filnavn i konstruktør på tidspunktet for objektoprettelse
2. ved at bruge den åbne metode
For f.eks.
Åbn fil ved hjælp af constructor
ifstream (const char* filnavn, ios_base::openmode mode = ios_base::in);
ifstream fin(filnavn, åbenmode) som standard åbenmode = ios::in
ifstream fin(filnavn);Åbn fil ved at bruge åben metode
Kaldning af standardkonstruktør
ifstream ende;
fin.open(filnavn, åben tilstand)
fin.åben(filnavn);
Tilstande:
| Medlem Constant | Står for | Adgang |
|---|---|---|
| i * | input | Fil åben til læsning: den interne streambuffer understøtter inputhandlinger. |
| ud | produktion | Fil åben til skrivning: den interne stream buffer understøtter output operationer. |
| binær | binær | Operationer udføres i binær tilstand i stedet for tekst. |
| spiste | til sidst | Outputpositionen starter i slutningen af filen. |
| app | Tilføj | Alle output-operationer sker i slutningen af filen, føjer til dens eksisterende indhold. |
| bagagerum | afkorte | Alt indhold, der fandtes i filen, før den åbnes, kasseres. |
Standard åbne tilstande:
| ifstream | ios::in |
| ofstream | ios::ud |
| fstream | ios::in | ios::ud |
Problemformulering : At læse og skrive en fil i C++.
Eksempler:
Input : Welcome in techcodeview.com. Best way to learn things. -1 Output : Welcome in techcodeview.com. Best way to learn things.>
Nedenfor er implementeringen ved at bruge ifstream og ofstream klasser .
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;> }> |
>
>
Tidskompleksitet: O(n)
Hjælpeplads: O(1)
Nedenfor er implementeringen ved at bruge fstream klasse .
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;> }> |
>
>
Tidskompleksitet: O(n)
Hjælpeplads: 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>>navn;> > >cout<<>'
Enter the Fee:'>;> >cin>>gebyr;> > >ofstream fout(>'d:/student.doc'>);> > >fout<' '<' '/write data to the file student fout.close(); ifstream fin('d:/student.doc'); fin>>rno>>navn>>gebyr; //læs data fra filen student fin.close(); cout<' '<' '< return 0; }> |
>
>
java regex $
Tidskompleksitet: O(1)
Hjælpeplads: 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>>navn>>gebyr;>//read data from the file student> > >fin.close();> > >cout<' '<' '< return 0; }> |
>
>
Tidskompleksitet: O(1)
Hjælpeplads: O(50)