logo

Filhåndtering gjennom C++-klasser

Filhåndtering brukes til å lagre data permanent i en datamaskin. Ved å bruke filhåndtering kan vi lagre dataene våre i sekundært minne (harddisk).
Hvordan oppnå filhåndtering
For å oppnå filhåndtering må vi følge følgende trinn:-
TRINN 1 - Navngi en fil
TRINN 2-Åpne en fil
TRINN 3-Skriv data inn i filen
TRINN 4 – Lese data fra filen
TRINN 5-Lukke en fil.

Strømmer i C++:-

Vi gir innspill til det utførende programmet og utførelsesprogrammet gir tilbake resultatet. Sekvensen av byte gitt som input til det kjørende programmet og sekvensen av byte som kommer som utdata fra det kjørende programmet kalles stream. Med andre ord, strømmer er ingenting annet enn flyten av data i en sekvens.



Inngangs- og utgangsoperasjonen mellom det kjørende programmet og enhetene som tastatur og skjerm er kjent som konsoll I/O-drift. Inn- og utgangsoperasjonen mellom det kjørende programmet og filene er kjent som disk I/O-operasjon.

Klasser for filstrømoperasjoner:-

I/O-systemet til C++ inneholder et sett med klasser som definerer filhåndteringsmetodene. Disse inkluderer klasser ifstream, ofstream og fstream. Disse klassene er avledet fra fstream og fra den tilsvarende iostream-klassen. Disse klassene, designet for å administrere diskfilene, er deklarert i fstream og derfor må vi inkludere denne filen i ethvert program som bruker filer.
1. ios:-

  • ios står for input output stream.
  • Denne klassen er basisklassen for andre klasser i dette klassehierarkiet.
  • Denne klassen inneholder de nødvendige fasilitetene som brukes av alle de andre avledede klassene for input- og output-operasjoner.

2. istream:-



  • istream står for input stream.
  • Denne klassen er avledet fra klassen 'ios'.
  • Denne klassen håndterer inngangsstrømmen.
  • Ekstraksjonsoperatøren (>>) er overbelastet i denne klassen for å håndtere inngangsstrømmer fra filer til programkjøringen.
  • Denne klassen erklærer inngangsfunksjoner som get(), getline() og read().

3. på den andre siden:-

  • ostream står for output stream.
  • Denne klassen er avledet fra klassen 'ios'.
  • Denne klassen håndterer utdatastrømmen.
  • Innsettingsoperatoren (<<) er overbelastet i denne klassen for å håndtere utdatastrømmer til filer fra programkjøringen.
  • Denne klassen erklærer utdatafunksjoner som put() og write().

4. streambuf:-

git status -s
  • Denne klassen inneholder en peker som peker til bufferen som brukes til å administrere inngangs- og utdatastrømmene.

5. fstreambase:-



  • Denne klassen gir operasjoner som er felles for filstrømmene. Fungerer som en base for fstream, ifstream og ofstream klasse.
  • Denne klassen inneholder funksjonen open() og close().

6. ifstream:-

  • Denne klassen gir inndataoperasjoner.
  • Den inneholder åpen() funksjon med standard inndatamodus.
  • Arver funksjonene get(), getline(), read(), seekg() og tellg()-funksjonene fra istream.

7. ofstream:-

  • Denne klassen gir utdataoperasjoner.
  • Den inneholder åpen() funksjon med standard utdatamodus.
  • Arver funksjonene put(), write(), seekp() og tellp()-funksjonene fra ostreamen.

8. fstream:-

  • Denne klassen gir støtte for samtidige inngangs- og utgangsoperasjoner.
  • Arver alle funksjonene fra istream og ostream klasser gjennom iostream.

9. filebuf:-

  • Hensikten er å sette filbufferne til å lese og skrive.
  • Vi kan også bruke filbuffermedlemsfunksjonen for å bestemme lengden på filen.

I C++ håndteres filer hovedsakelig ved å bruke tre klasser fstream, ifstream, ofstream tilgjengelig i fstream headerfile.
ofstream: Stream klasse for å skrive på filer
ifstream: Stream klasse for å lese fra filer
fstream: Stream klasse for både å lese og skrive fra/til filer.

Nå er det første trinnet for å åpne den aktuelle filen for lese- eller skriveoperasjon. Vi kan åpne filen ved
1. sende filnavn i konstruktør på tidspunktet for objektoppretting
2. ved å bruke den åpne metoden

For f.eks.

Åpne fil ved å bruke konstruktør
ifstream (const char* filnavn, ios_base::openmode mode = ios_base::in);
ifstream fin(filnavn, åpen modus) som standard åpen modus = ios::in
ifstream fin(filnavn);

Åpne fil ved å bruke åpen metode
Kalling av standard konstruktør
ifstream slutt;
fin.open(filnavn, åpen modus)
fin.open(filnavn);

Modus:

Medlem Constant Står for Adgang
i * input Fil åpen for lesing: den interne strømbufferen støtter inndataoperasjoner.
ute produksjon Fil åpen for skriving: den interne strømbufferen støtter utdataoperasjoner.
binær binær Operasjoner utføres i binær modus i stedet for tekst.
spiste på slutten Utdataposisjonen starter på slutten av filen.
app legge til Alle utdataoperasjoner skjer på slutten av filen, og legges til dens eksisterende innhold.
stamme avkorte Alt innhold som fantes i filen før den ble åpnet, forkastes.

Standard åpne moduser:

ifstream ios::in
av strømmen ios::ut
fstream ios::in | ios::ut

Problemstilling : For å lese 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 å bruke 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)
Hjelpeområde: O(1)

Nedenfor er implementeringen ved å bruke 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)
Hjelpeområde: 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>>avgift;> > >ofstream fout(>'d:/student.doc'>);> > >fout<' '<' '>rno>>navn>>avgift; //les data fra filen student fin.close(); cout<' '<' '< return 0; }>

>

>

én million i tall

Tidskompleksitet: O(1)
Hjelpeområde: 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>>avgift;>//read data from the file student> > >fin.close();> > >cout<' '<' '< return 0; }>

>

>

Tidskompleksitet: O(1)
Hjelpeområde: O(50)