Einführung
In diesem Lab lernst du, wie du Zeile für Zeile in einer Datei lesen und schreiben kannst, indem du die Programmiersprache C++ verwendest. Du wirst eine Datei erstellen, in sie schreiben und dann ihren Inhalt Zeile für Zeile lesen.
Datei erstellen und öffnen
Erstelle in das Verzeichnis ~/project eine C++-Datei namens file_io.cpp. In diesem Schritt wirst du eine Datei namens example.txt erstellen und öffnen.
#include <fstream>
int main() {
// Creating and opening a file
std::ofstream ofs;
ofs.open("example.txt", std::ofstream::out | std::ofstream::trunc);
ofs.close();
return 0;
}
Erklärung:
ofstreamist eine Klasse zum Schreiben in Dateien.ofsist ein Objekt der Klasseofstream.- Die
open()-Methode wird verwendet, um eine Datei zu erstellen und zu öffnen. - In der
open()-Methode ist der erste Parameter der Name der zu erstellenden Datei, und der zweite Parameter gibt die Art der Öffnung an. Hierbei gibtoutan, dass die Datei zum Schreiben geöffnet wird, undtruncgibt an, dass die Datei, falls sie bereits existiert, geleert werden soll.
In eine Datei schreiben
In diesem Schritt wirst du in die Datei example.txt schreiben.
#include <fstream>
#include <iostream>
#include <string>
int main() {
std::ofstream ofs;
ofs.open("example.txt", std::ofstream::out | std::ofstream::trunc);
if (ofs.is_open()) {
std::cout << "Geben Sie den Text ein, der in die Datei geschrieben werden soll (Leere Zeile eingeben, um zu beenden):" << std::endl;
std::string line;
do {
std::getline(std::cin, line);
if (line.length()) {
ofs << line << std::endl;
}
} while (line.length());
ofs.close();
} else {
std::cerr << "Fehler beim Öffnen der Datei" << std::endl;
}
return 0;
}
Erklärung:
std::coutwird verwendet, um eine Nachricht auf der Konsole anzuzeigen, die den Benutzer auffordert, den Text einzugeben, der in die Datei geschrieben werden soll.std::getline()wird verwendet, um die Benutzereingabe Zeile für Zeile zu lesen und in derline-Variable zu speichern.if (line.length())wird verwendet, um zu überprüfen, ob der Benutzer irgendeinen Text eingegeben hat oder nicht. Wenn der Benutzer keinen Text eingegeben hat, wird die Schleife beendet.ofs << line << std::endl;wird verwendet, um die Benutzereingabe in die Datei gefolgt von einem Zeilenumbruchzeichen zu schreiben.std::cerrwird verwendet, um eine Fehlermeldung auf der Konsole anzuzeigen, wenn die Datei nicht geöffnet werden kann.
Um dieses Programm auszuführen, gehe in das Verzeichnis ~/project und führe den folgenden Befehl aus:
g++ file_io.cpp -o file_io && ./file_io
Dieses Programm wird den Benutzer auffordern, den Text einzugeben, der in die Datei geschrieben werden soll, und schreibt dann die Benutzereingabe in die Datei.
Aus einer Datei lesen
In diesem Schritt wirst du den Inhalt der Datei example.txt lesen.
#include <fstream>
#include <iostream>
#include <string>
int main() {
std::ifstream ifs;
ifs.open("example.txt");
if (ifs.is_open()) {
std::cout << "Inhalt der Datei:" << std::endl;
std::string line;
while (std::getline(ifs, line)) {
std::cout << line << std::endl;
}
ifs.close();
} else {
std::cerr << "Fehler beim Öffnen der Datei" << std::endl;
}
return 0;
}
Erklärung:
std::ifstreamist eine Klasse zum Lesen aus Dateien.ifsist ein Objekt der Klasseifstream.- Die
open()-Methode wird verwendet, um eine vorhandene Datei zu öffnen. - Im
open()-Methode ist der Parameter der Name der zu öffnenden Datei. std::coutwird verwendet, um eine Nachricht auf der Konsole anzuzeigen, die angibt, dass der Inhalt der Datei angezeigt wird.std::getline()wird verwendet, um den Inhalt der Datei Zeile für Zeile zu lesen und in derline-Variable zu speichern.std::cout << line << std::endl;wird verwendet, um den Inhalt der Datei Zeile für Zeile auf der Konsole anzuzeigen.
Um dieses Programm auszuführen, gehe in das Verzeichnis ~/project und führe den folgenden Befehl aus:
g++ file_io.cpp -o file_io && ./file_io
Dieses Programm wird den Inhalt der Datei example.txt auf der Konsole anzeigen.
Zusammenfassung
In diesem Lab hast du gelernt, wie du mit der Programmiersprache C++ eine Datei erstellen, in sie schreiben und aus ihr lesen kannst. Du hast gelernt, wie du die Klassen ofstream und ifstream verwenden kannst, um jeweils in eine Datei zu schreiben und aus ihr zu lesen. Du hast auch gelernt, wie du die open()-Methode verwendest, um eine Datei zu erstellen und zu öffnen, und die getline()-Methode, um den Inhalt einer Datei Zeile für Zeile zu lesen.



