logo

Dateihandhabung durch C++-Klassen

Beim Dateihandling werden Daten dauerhaft auf einem Computer gespeichert. Mithilfe der Dateiverwaltung können wir unsere Daten im Sekundärspeicher (Festplatte) speichern.
So erreichen Sie die Dateiverwaltung
Um die Dateiverwaltung zu erreichen, müssen wir die folgenden Schritte ausführen:
SCHRITT 1 – Benennen einer Datei
SCHRITT 2 – Öffnen einer Datei
SCHRITT 3 – Daten in die Datei schreiben
SCHRITT 4 – Daten aus der Datei lesen
SCHRITT 5 – Eine Datei schließen.

Streams in C++ :-

Wir geben Eingaben an das ausführende Programm und das Ausführungsprogramm gibt die Ausgabe zurück. Die Bytefolge, die dem ausführenden Programm als Eingabe gegeben wird, und die Bytefolge, die als Ausgabe vom ausführenden Programm kommt, werden als Stream bezeichnet. Mit anderen Worten: Streams sind nichts anderes als der Datenfluss in einer Sequenz.



Der Ein- und Ausgabevorgang zwischen dem ausführenden Programm und den Geräten wie Tastatur und Monitor wird als Konsolen-E/A-Vorgang bezeichnet. Der Ein- und Ausgabevorgang zwischen dem ausführenden Programm und den Dateien wird als Festplatten-E/A-Vorgang bezeichnet.

Klassen für Dateistream-Operationen: –

Das E/A-System von C++ enthält eine Reihe von Klassen, die die Dateiverarbeitungsmethoden definieren. Dazu gehören die Klassen ifstream, ofstream und fstream. Diese Klassen werden von fstream und der entsprechenden iostream-Klasse abgeleitet. Diese Klassen, die für die Verwaltung der Festplattendateien konzipiert sind, werden in fstream deklariert und daher müssen wir diese Datei in jedes Programm einbinden, das Dateien verwendet.
1. ios:-

  • ios steht für Input-Output-Stream.
  • Diese Klasse ist die Basisklasse für andere Klassen in dieser Klassenhierarchie.
  • Diese Klasse enthält die notwendigen Funktionen, die von allen anderen abgeleiteten Klassen für Eingabe- und Ausgabeoperationen verwendet werden.

2. istream:-



  • istream steht für Input Stream.
  • Diese Klasse ist von der Klasse „ios“ abgeleitet.
  • Diese Klasse verarbeitet den Eingabestream.
  • Der Extraktionsoperator (>>) ist in dieser Klasse überladen, um Eingabeströme von Dateien zur Programmausführung zu verarbeiten.
  • Diese Klasse deklariert Eingabefunktionen wie get(), getline() und read().

3. auf der anderen Seite:-

  • ostream steht für Ausgabestream.
  • Diese Klasse ist von der Klasse „ios“ abgeleitet.
  • Diese Klasse verarbeitet den Ausgabestream.
  • Der Einfügeoperator (<<) ist in dieser Klasse überladen, um Ausgabeströme in Dateien aus der Programmausführung zu verarbeiten.
  • Diese Klasse deklariert Ausgabefunktionen wie put() und write().

4. streambuf:-

Lineare Suche in Java
  • Diese Klasse enthält einen Zeiger, der auf den Puffer zeigt, der zur Verwaltung der Eingabe- und Ausgabeströme verwendet wird.

5. fstreambase:-



  • Diese Klasse stellt für die Dateistreams gemeinsame Vorgänge bereit. Dient als Basis für die Klassen fstream, ifstream und ofstream.
  • Diese Klasse enthält die Funktionen open() und close().

6. ifstream:-

  • Diese Klasse stellt Eingabeoperationen bereit.
  • Es enthält die Funktion open() mit Standardeingabemodus.
  • Erbt die Funktionen get(), getline(), read(), seeg() und tellg() vom istream.

7. ofstream:-

  • Diese Klasse stellt Ausgabeoperationen bereit.
  • Es enthält die Funktion open() mit Standardausgabemodus.
  • Erbt die Funktionen put(), write(), seep() und tellp() vom ostream.

8. fstream:-

  • Diese Klasse bietet Unterstützung für gleichzeitige Eingabe- und Ausgabevorgänge.
  • Erbt alle Funktionen der istream- und ostream-Klassen über iostream.

9. Dateibuf:-

  • Sein Zweck besteht darin, die Dateipuffer auf Lesen und Schreiben einzustellen.
  • Wir können auch die Dateipuffer-Memberfunktion verwenden, um die Länge der Datei zu bestimmen.

In C++ werden Dateien hauptsächlich mithilfe der drei Klassen fstream, ifstream und ofstream verarbeitet, die in der fstream-Headerdatei verfügbar sind.
ofstream: Stream-Klasse zum Schreiben in Dateien
ifstream: Stream-Klasse zum Lesen aus Dateien
fstream: Stream-Klasse zum Lesen und Schreiben von/in Dateien.

Jetzt ist der erste Schritt, die jeweilige Datei für den Lese- oder Schreibvorgang zu öffnen. Wir können die Datei öffnen
1. Übergabe des Dateinamens im Konstruktor zum Zeitpunkt der Objekterstellung
2. Verwenden Sie die offene Methode

Für z.B.

Öffnen Sie die Datei mit dem Konstruktor
ifstream (const char* filename, ios_base::openmode mode = ios_base::in);
ifstream fin(filename, openmode) standardmäßig openmode = ios::in
ifstream fin(Dateiname);

Öffnen Sie die Datei mit der Methode open
Aufruf des Standardkonstruktors
ifstream-Ende;
fin.open(Dateiname, Openmode)
fin.open(Dateiname);

Modi:

Mitgliedskonstante Steht für Zugang
In * Eingang Datei zum Lesen geöffnet: Der interne Stream-Puffer unterstützt Eingabevorgänge.
aus Ausgabe Datei zum Schreiben geöffnet: Der interne Stream-Puffer unterstützt Ausgabevorgänge.
binär binär Operationen werden im Binärmodus und nicht im Textmodus ausgeführt.
am Ende Die Ausgabeposition beginnt am Ende der Datei.
App anhängen Alle Ausgabevorgänge erfolgen am Ende der Datei und werden an den vorhandenen Inhalt angehängt.
Stamm kürzen Alle Inhalte, die vor dem Öffnen in der Datei vorhanden waren, werden verworfen.

Standard-Öffnungsmodi:

ifstream ios::in
ofstream ios::out
fstream ios::in | ios::out

Problemstellung : Zum Lesen und Schreiben einer Datei in C++.
Beispiele:

Input : Welcome in techcodeview.com. Best way to learn things. -1 Output : Welcome in techcodeview.com. Best way to learn things.>

Nachfolgend finden Sie die Implementierung mithilfe von ifstream- und ofstream-Klassen .

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;> }>

>

>

Zeitkomplexität: O(n)
Hilfsraum: O(1)

Nachfolgend finden Sie die Implementierung mithilfe von 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;> }>

>

>

Zeitkomplexität: O(n)
Hilfsraum: 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>>name;> > >cout<<>' Enter the Fee:'>;> >cin>>Gebühr;> > >ofstream fout(>'d:/student.doc'>);> > >fout<' '<' '>rno>>name>>Gebühr; //Daten aus der Datei lesen student fin.close(); cout<' '<' '< return 0; }>

>

do und while-Schleife in Java

>

Zeitkomplexität: O(1)
Hilfsraum: 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>>name>>Gebühr;>//read data from the file student> > >fin.close();> > >cout<' '<' '< return 0; }>

>

>

Zeitkomplexität: O(1)
Hilfsraum: O(50)