Datei Zeile für Zeile lesen und schreiben in C++

C++C++Beginner
Jetzt üben

💡 Dieser Artikel wurde von AI-Assistenten übersetzt. Um die englische Version anzuzeigen, können Sie hier klicken

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.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL cpp(("C++")) -.-> cpp/ControlFlowGroup(["Control Flow"]) cpp(("C++")) -.-> cpp/OOPGroup(["OOP"]) cpp(("C++")) -.-> cpp/IOandFileHandlingGroup(["I/O and File Handling"]) cpp/ControlFlowGroup -.-> cpp/while_loop("While Loop") cpp/OOPGroup -.-> cpp/classes_objects("Classes/Objects") cpp/OOPGroup -.-> cpp/class_methods("Class Methods") cpp/IOandFileHandlingGroup -.-> cpp/output("Output") cpp/IOandFileHandlingGroup -.-> cpp/user_input("User Input") cpp/IOandFileHandlingGroup -.-> cpp/files("Files") subgraph Lab Skills cpp/while_loop -.-> lab-96213{{"Datei Zeile für Zeile lesen und schreiben in C++"}} cpp/classes_objects -.-> lab-96213{{"Datei Zeile für Zeile lesen und schreiben in C++"}} cpp/class_methods -.-> lab-96213{{"Datei Zeile für Zeile lesen und schreiben in C++"}} cpp/output -.-> lab-96213{{"Datei Zeile für Zeile lesen und schreiben in C++"}} cpp/user_input -.-> lab-96213{{"Datei Zeile für Zeile lesen und schreiben in C++"}} cpp/files -.-> lab-96213{{"Datei Zeile für Zeile lesen und schreiben in C++"}} end

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:

  • ofstream ist eine Klasse zum Schreiben in Dateien.
  • ofs ist ein Objekt der Klasse ofstream.
  • 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 gibt out an, dass die Datei zum Schreiben geöffnet wird, und trunc gibt an, dass die Datei, falls sie bereits existiert, geleert werden soll.

Schreiben in eine Datei

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::cout wird 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 der line-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::cerr wird 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.

Lesen aus einer Datei

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::ifstream ist eine Klasse zum Lesen aus Dateien.
  • ifs ist ein Objekt der Klasse ifstream.
  • Die open()-Methode wird verwendet, um eine vorhandene Datei zu öffnen.
  • Im open()-Methode ist der Parameter der Name der zu öffnenden Datei.
  • std::cout wird 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 der line-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.