Umgang mit C++-Dateien:Öffnen, Schreiben, Lesen und Schließen von Dateien in C++
Was ist Dateiverwaltung in C++?
Dateien speichern Daten dauerhaft auf einem Speichergerät. Mit der Dateiverwaltung kann die Ausgabe eines Programms in einer Datei gespeichert werden. An den Daten können verschiedene Operationen durchgeführt werden, während sie sich in der Datei befinden.
Ein Stream ist eine Abstraktion eines Geräts, in dem Eingabe-/Ausgabeoperationen durchgeführt werden. Sie können einen Stream entweder als Ziel oder als Quelle von Zeichen unbestimmter Länge darstellen. Dies wird durch ihre Verwendung bestimmt. C++ stellt Ihnen eine Bibliothek zur Verfügung, die Methoden zur Dateibehandlung enthält. Lassen Sie uns darüber diskutieren.
In diesem C++-Tutorial lernen Sie:
- Was ist Dateiverwaltung in C++?
- Die fstream-Bibliothek
- So öffnen Sie Dateien
- So schließen Sie Dateien
- In Dateien schreiben
- Auslesen von Dateien
Die fstream-Bibliothek
Die fstream-Bibliothek bietet C++-Programmierern drei Klassen für die Arbeit mit Dateien. Zu diesen Klassen gehören:
- ofstream – Diese Klasse repräsentiert einen Ausgabestrom. Es wird zum Erstellen von Dateien und zum Schreiben von Informationen in Dateien verwendet.
- ifstream – Diese Klasse repräsentiert einen Eingabestrom. Es wird zum Lesen von Informationen aus Datendateien verwendet.
- fstream – Diese Klasse repräsentiert im Allgemeinen einen Dateistrom. Es kommt mit ofstream/ifstream-Fähigkeiten. Das bedeutet, dass es in der Lage ist, Dateien zu erstellen, in Dateien zu schreiben und aus Datendateien zu lesen.
Das folgende Bild macht es einfach zu verstehen:
Um die obigen Klassen der fstream-Bibliothek zu verwenden, müssen Sie sie als Header-Datei in Ihr Programm aufnehmen. Natürlich verwenden Sie die Präprozessordirektive #include. Sie müssen auch die iostream-Headerdatei einschließen.
So öffnen Sie Dateien
Bevor Sie eine Operation an einer Datei ausführen, müssen Sie sie zuerst öffnen. Wenn Sie in die Datei schreiben müssen, öffnen Sie sie mit fstream- oder ofstream-Objekten. Wenn Sie nur aus der Datei lesen müssen, öffnen Sie sie mit dem ifstream-Objekt.
In den drei Objekten fstream, ofstream und ifstream ist die Funktion open() definiert. Die Funktion nimmt diese Syntax an:
open (file_name, mode);
- Der Parameter file_name gibt den Namen der zu öffnenden Datei an.
- Der Modusparameter ist optional. Es kann einen der folgenden Werte annehmen:
Es ist möglich, zwei Modi gleichzeitig zu verwenden. Sie kombinieren sie mit dem | (OR)-Operator.
Beispiel 1:
#include <iostream> #include <fstream> using namespace std; int main() { fstream my_file; my_file.open("my_file", ios::out); if (!my_file) { cout << "File not created!"; } else { cout << "File created successfully!"; my_file.close(); } return 0; }
Ausgabe:
Hier ist ein Screenshot des Codes:
Code-Erklärung:
- Fügen Sie die iostream-Header-Datei in das Programm ein, um seine Funktionen zu nutzen.
- Schließen Sie die fstream-Header-Datei in das Programm ein, um seine Klassen zu verwenden.
- Fügen Sie den std-Namespace in unseren Code ein, um seine Klassen zu verwenden, ohne ihn aufzurufen.
- Rufen Sie die Funktion main() auf. Die Programmlogik sollte sich in seinem Körper befinden.
- Erstellen Sie ein Objekt der Klasse fstream und geben Sie ihm den Namen my_file.
- Wenden Sie die Funktion open() auf das obige Objekt an, um eine neue Datei zu erstellen. Der Out-Modus ermöglicht es uns, in die Datei zu schreiben.
- Verwenden Sie die if-Anweisung, um zu prüfen, ob die Dateierstellung fehlgeschlagen ist.
- Nachricht zum Drucken auf der Konsole, wenn die Datei nicht erstellt wurde.
- Ende des Hauptteils der if-Anweisung.
- Verwenden Sie eine else-Anweisung, um anzugeben, was zu tun ist, wenn die Datei erstellt wurde.
- Nachricht zum Drucken auf der Konsole, wenn die Datei erstellt wurde.
- Wenden Sie die Funktion close() auf das Objekt an, um die Datei zu schließen.
- Ende des Hauptteils der else-Anweisung.
- Das Programm muss einen Wert zurückgeben, wenn es erfolgreich abgeschlossen wird.
- Ende des Hauptteils der main()-Funktion.
So schließen Sie Dateien
Sobald ein C++-Programm beendet wird, wird es automatisch
- spült die Streams
- gibt den zugewiesenen Speicher frei
- schließt geöffnete Dateien.
Als Programmierer sollten Sie jedoch lernen, geöffnete Dateien zu schließen, bevor das Programm beendet wird.
Die Objekte fstream, ofstream und ifstream haben die Funktion close() zum Schließen von Dateien. Die Funktion nimmt diese Syntax an:
void close();
In Dateien schreiben
Sie können direkt aus Ihrem C++-Programm in die Datei schreiben. Dazu verwenden Sie den Stream-Einfügungsoperator (<<). Der in die Datei zu schreibende Text sollte in doppelte Anführungszeichen gesetzt werden.
Lassen Sie uns das demonstrieren.
Beispiel 2:
#include <iostream> #include <fstream> using namespace std; int main() { fstream my_file; my_file.open("my_file.txt", ios::out); if (!my_file) { cout << "File not created!"; } else { cout << "File created successfully!"; my_file << "Guru99"; my_file.close(); } return 0; }
Ausgabe :
Hier ist ein Screenshot des Codes:
Code-Erklärung:
- Fügen Sie die iostream-Header-Datei in das Programm ein, um seine Funktionen zu nutzen.
- Schließen Sie die fstream-Header-Datei in das Programm ein, um seine Klassen zu verwenden.
- Fügen Sie den std-Namensraum in das Programm ein, um seine Klassen zu verwenden, ohne ihn aufzurufen.
- Rufen Sie die Funktion main() auf. Die Programmlogik sollte innerhalb des Hauptteils dieser Funktion hinzugefügt werden.
- Erstellen Sie eine Instanz der fstream-Klasse und geben Sie ihr den Namen my_file.
- Verwenden Sie die Funktion open(), um eine neue Datei mit dem Namen my_file.txt zu erstellen. Die Datei wird zum Schreiben im Out-Modus geöffnet.
- Verwenden Sie eine if-Anweisung, um zu prüfen, ob die Datei nicht geöffnet wurde.
- Text, der auf der Konsole gedruckt werden soll, wenn die Datei nicht geöffnet ist.
- Ende des Hauptteils der if-Anweisung.
- Verwenden Sie eine else-Anweisung, um anzugeben, was zu tun ist, wenn die Datei erstellt wurde.
- Text zum Drucken auf der Konsole, wenn die Datei erstellt wurde.
- Schreiben Sie Text in die erstellte Datei.
- Verwenden Sie die Funktion close(), um die Datei zu schließen.
- Ende des Hauptteils der else-Anweisung.
- Das Programm muss nach erfolgreichem Abschluss einen Wert zurückgeben.
- Ende des Hauptteils der main()-Funktion.
Auslesen von Dateien
Sie können Informationen aus Dateien in Ihr C++-Programm einlesen. Dies ist mit dem Stream-Extraktionsoperator (>>) möglich. Sie verwenden den Operator auf die gleiche Weise, wie Sie ihn verwenden, um Benutzereingaben von der Tastatur zu lesen. Anstelle des cin-Objekts verwenden Sie jedoch das ifstream/fstream-Objekt.
Beispiel 3:
#include <iostream> #include <fstream> using namespace std; int main() { fstream my_file; my_file.open("my_file.txt", ios::in); if (!my_file) { cout << "No such file"; } else { char ch; while (1) { my_file >> ch; if (my_file.eof()) break; cout << ch; } } my_file.close(); return 0; }
Ausgabe:
Keine solche Datei
Hier ist ein Screenshot des Codes:
Code-Erklärung:
- Fügen Sie die iostream-Header-Datei in das Programm ein, um seine Funktionen zu nutzen.
- Schließen Sie die fstream-Header-Datei in das Programm ein, um seine Klassen zu verwenden.
- Fügen Sie den std-Namensraum in das Programm ein, um seine Klassen zu verwenden, ohne ihn aufzurufen.
- Rufen Sie die Funktion main() auf. Die Programmlogik sollte innerhalb des Hauptteils dieser Funktion hinzugefügt werden.
- Erstellen Sie eine Instanz der fstream-Klasse und geben Sie ihr den Namen my_file.
- Verwenden Sie die Funktion open(), um eine neue Datei mit dem Namen my_file.txt zu erstellen. Die Datei wird zum Lesen im In-Modus geöffnet.
- Verwenden Sie eine if-Anweisung, um zu prüfen, ob die Datei nicht existiert.
- Text zum Drucken auf der Konsole, wenn die Datei nicht gefunden wird.
- Ende des Hauptteils der if-Anweisung.
- Verwenden Sie eine else-Anweisung, um anzugeben, was zu tun ist, wenn die Datei gefunden wird.
- Erstellen Sie eine char-Variable namens ch.
- Erstellen Sie eine While-Schleife, um den Dateiinhalt zu durchlaufen.
- Inhalt der Datei in Variable ch schreiben/speichern
- Verwenden Sie eine if-Bedingung und eine eof()-Funktion, d. h. das Ende der Datei, um sicherzustellen, dass der Compiler weiter aus der Datei liest, wenn das Ende nicht erreicht ist.
- Verwenden Sie eine break-Anweisung, um das Lesen der Datei zu stoppen, sobald das Ende erreicht ist.
- Den Inhalt der Variablen ch auf der Konsole ausgeben.
- Ende des While-Körpers.
- Ende des Hauptteils der else-Anweisung.
- Rufen Sie die Funktion close() auf, um die Datei zu schließen.
- Das Programm muss nach erfolgreichem Abschluss einen Wert zurückgeben.
- Ende des Hauptteils der main()-Funktion.
Zusammenfassung:
- Mit der Dateiverwaltung kann die Ausgabe eines Programms gesendet und in einer Datei gespeichert werden.
- Eine Reihe von Operationen können dann auf die Daten angewendet werden, während sie sich in der Datei befinden.
- Ein Stream ist eine Abstraktion, die ein Gerät darstellt, auf dem Ein-/Ausgabeoperationen durchgeführt werden.
- Ein Stream kann entweder als Ziel oder als Quelle von Zeichen unbestimmter Länge dargestellt werden.
- Die fstream-Bibliothek bietet C++-Programmierern Methoden zur Dateiverwaltung.
- Um die Bibliothek zu verwenden, müssen Sie sie mit der Präprozessordirektive #include in Ihr Programm einbinden.
C Sprache
- C Dateiverwaltung
- So initialisieren Sie RAM aus einer Datei mit TEXTIO
- C++-Ausnahmebehandlung:Try, Catch, Throw Beispiel
- Wie man Kommentare in der C-Programmierung schreibt
- Java BufferedReader:Lesen von Dateien in Java mit Beispiel
- C - Header-Dateien
- C++-Dateien und -Streams
- C++-Signalverarbeitung
- Python - Datei-I/O
- Was ist Mikrometer? | Wie liest man ein Mikrometer ab