Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> C Sprache

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:

Die fstream-Bibliothek

Die fstream-Bibliothek bietet C++-Programmierern drei Klassen für die Arbeit mit Dateien. Zu diesen Klassen gehören:

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:
Wert Beschreibung ios::appDer Append-Modus. Die an die Datei gesendete Ausgabe wird an it.ios::ateIt angehängt. Öffnet die Datei für die Ausgabe und verschiebt dann die Lese- und Schreibsteuerung an das Ende der Datei.ios::inIt öffnet die Datei zum Lesen.ios::outIt öffnet die Datei für eine write.ios::truncWenn eine Datei existiert, sollten die Dateielemente vor dem Öffnen abgeschnitten werden.

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:

  1. Fügen Sie die iostream-Header-Datei in das Programm ein, um seine Funktionen zu nutzen.
  2. Schließen Sie die fstream-Header-Datei in das Programm ein, um seine Klassen zu verwenden.
  3. Fügen Sie den std-Namespace in unseren Code ein, um seine Klassen zu verwenden, ohne ihn aufzurufen.
  4. Rufen Sie die Funktion main() auf. Die Programmlogik sollte sich in seinem Körper befinden.
  5. Erstellen Sie ein Objekt der Klasse fstream und geben Sie ihm den Namen my_file.
  6. 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.
  7. Verwenden Sie die if-Anweisung, um zu prüfen, ob die Dateierstellung fehlgeschlagen ist.
  8. Nachricht zum Drucken auf der Konsole, wenn die Datei nicht erstellt wurde.
  9. Ende des Hauptteils der if-Anweisung.
  10. Verwenden Sie eine else-Anweisung, um anzugeben, was zu tun ist, wenn die Datei erstellt wurde.
  11. Nachricht zum Drucken auf der Konsole, wenn die Datei erstellt wurde.
  12. Wenden Sie die Funktion close() auf das Objekt an, um die Datei zu schließen.
  13. Ende des Hauptteils der else-Anweisung.
  14. Das Programm muss einen Wert zurückgeben, wenn es erfolgreich abgeschlossen wird.
  15. 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:

  1. Fügen Sie die iostream-Header-Datei in das Programm ein, um seine Funktionen zu nutzen.
  2. Schließen Sie die fstream-Header-Datei in das Programm ein, um seine Klassen zu verwenden.
  3. Fügen Sie den std-Namensraum in das Programm ein, um seine Klassen zu verwenden, ohne ihn aufzurufen.
  4. Rufen Sie die Funktion main() auf. Die Programmlogik sollte innerhalb des Hauptteils dieser Funktion hinzugefügt werden.
  5. Erstellen Sie eine Instanz der fstream-Klasse und geben Sie ihr den Namen my_file.
  6. 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.
  7. Verwenden Sie eine if-Anweisung, um zu prüfen, ob die Datei nicht geöffnet wurde.
  8. Text, der auf der Konsole gedruckt werden soll, wenn die Datei nicht geöffnet ist.
  9. Ende des Hauptteils der if-Anweisung.
  10. Verwenden Sie eine else-Anweisung, um anzugeben, was zu tun ist, wenn die Datei erstellt wurde.
  11. Text zum Drucken auf der Konsole, wenn die Datei erstellt wurde.
  12. Schreiben Sie Text in die erstellte Datei.
  13. Verwenden Sie die Funktion close(), um die Datei zu schließen.
  14. Ende des Hauptteils der else-Anweisung.
  15. Das Programm muss nach erfolgreichem Abschluss einen Wert zurückgeben.
  16. 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:

  1. Fügen Sie die iostream-Header-Datei in das Programm ein, um seine Funktionen zu nutzen.
  2. Schließen Sie die fstream-Header-Datei in das Programm ein, um seine Klassen zu verwenden.
  3. Fügen Sie den std-Namensraum in das Programm ein, um seine Klassen zu verwenden, ohne ihn aufzurufen.
  4. Rufen Sie die Funktion main() auf. Die Programmlogik sollte innerhalb des Hauptteils dieser Funktion hinzugefügt werden.
  5. Erstellen Sie eine Instanz der fstream-Klasse und geben Sie ihr den Namen my_file.
  6. 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.
  7. Verwenden Sie eine if-Anweisung, um zu prüfen, ob die Datei nicht existiert.
  8. Text zum Drucken auf der Konsole, wenn die Datei nicht gefunden wird.
  9. Ende des Hauptteils der if-Anweisung.
  10. Verwenden Sie eine else-Anweisung, um anzugeben, was zu tun ist, wenn die Datei gefunden wird.
  11. Erstellen Sie eine char-Variable namens ch.
  12. Erstellen Sie eine While-Schleife, um den Dateiinhalt zu durchlaufen.
  13. Inhalt der Datei in Variable ch schreiben/speichern
  14. 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.
  15. Verwenden Sie eine break-Anweisung, um das Lesen der Datei zu stoppen, sobald das Ende erreicht ist.
  16. Den Inhalt der Variablen ch auf der Konsole ausgeben.
  17. Ende des While-Körpers.
  18. Ende des Hauptteils der else-Anweisung.
  19. Rufen Sie die Funktion close() auf, um die Datei zu schließen.
  20. Das Programm muss nach erfolgreichem Abschluss einen Wert zurückgeben.
  21. 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

  1. C Dateiverwaltung
  2. So initialisieren Sie RAM aus einer Datei mit TEXTIO
  3. C++-Ausnahmebehandlung:Try, Catch, Throw Beispiel
  4. Wie man Kommentare in der C-Programmierung schreibt
  5. Java BufferedReader:Lesen von Dateien in Java mit Beispiel
  6. C - Header-Dateien
  7. C++-Dateien und -Streams
  8. C++-Signalverarbeitung
  9. Python - Datei-I/O
  10. Was ist Mikrometer? | Wie liest man ein Mikrometer ab