logo

Filhåndtering gennem C++ klasser

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<' '<' '>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)