0Pricing
C++ Academy · Lektion

Dateien mit ifstream lesen

Text und Daten lesen

Dateien mit ifstream lesen ist eine kostenlose C++ Academy-Lektion auf CoddyKit. Dies ist Lektion 1 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des C++ Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der C++ Academy-Kurs umfasst insgesamt 4 Lektionen.

Was ist ifstream?

std::ifstream (Eingabedateistream) liest Daten aus Dateien. Es verhält sich wie std::cin, aber seine Quelle ist eine Datei auf dem Datenträger.

  • Definiert in <fstream>.
  • Öffnet in seinem Konstruktor eine Datei anhand ihres Namens.
#include <iostream>
#include <fstream>

int main() {
    std::ofstream("demo.txt") << "hello\n";
    std::ifstream in("demo.txt");
    std::string word;
    in >> word;
    std::cout << word << '\n';
    return 0;
}

Eine Datei öffnen

Erzeugen Sie einen ifstream mit einem Dateinamen und prüfen Sie anschließend mit is_open(), ob die Datei gefunden wurde.

#include <iostream>
#include <fstream>

int main() {
    std::ofstream("data.txt") << "42\n";
    std::ifstream in("data.txt");
    std::cout << (in.is_open() ? "opened" : "failed") << '\n';
    return 0;
}

Wörter lesen

Der Operator >> liest durch Leerraum getrennte Token, genau wie bei cin.

#include <iostream>
#include <fstream>

int main() {
    std::ofstream("words.txt") << "alpha beta gamma\n";
    std::ifstream in("words.txt");
    std::string w;
    while (in >> w) std::cout << w << '\n';
    return 0;
}

Zahlen lesen

Sie können numerische Datentypen direkt extrahieren. Bei der Stream-Extraktion wird der Text in den passenden Datentyp umgewandelt.

#include <iostream>
#include <fstream>

int main() {
    std::ofstream("nums.txt") << "10 20 30\n";
    std::ifstream in("nums.txt");
    int sum = 0, x;
    while (in >> x) sum += x;
    std::cout << "sum = " << sum << '\n';
    return 0;
}

Zeilen mit getline lesen

Verwenden Sie std::getline(), um eine vollständige Zeile einschließlich Leerzeichen bis zum Zeilenumbruch zu lesen.

#include <iostream>
#include <fstream>
#include <string>

int main() {
    std::ofstream("lines.txt") << "first line\nsecond line\n";
    std::ifstream in("lines.txt");
    std::string line;
    while (std::getline(in, line)) std::cout << "[" << line << "]\n";
    return 0;
}

Die gesamte Datei lesen

Um den gesamten Inhalt einer Datei einzulesen, lesen Sie ihn mithilfe von Stream-Puffer-Iteratoren in einen String.

#include <iostream>
#include <fstream>
#include <sstream>

int main() {
    std::ofstream("all.txt") << "line1\nline2\n";
    std::ifstream in("all.txt");
    std::stringstream ss;
    ss << in.rdbuf();
    std::cout << ss.str();
    return 0;
}

Das Dateiende erkennen

Eine Leseschleife endet, wenn die Extraktion fehlschlägt, typischerweise am Dateiende. Wenn Sie den Stream in einer Bedingung prüfen, erkennen Sie diesen Zustand.

#include <iostream>
#include <fstream>

int main() {
    std::ofstream("eof.txt") << "1 2 3\n";
    std::ifstream in("eof.txt");
    int x, count = 0;
    while (in >> x) ++count;
    std::cout << "read " << count << " numbers\n";
    std::cout << "eof: " << std::boolalpha << in.eof() << '\n';
    return 0;
}

Mit einer fehlenden Datei umgehen

Wenn die Datei nicht existiert, befindet sich der Stream in einem Fehlerzustand und is_open() ist false. Prüfen Sie den Stream immer vor dem Lesen.

#include <iostream>
#include <fstream>

int main() {
    std::ifstream in("does_not_exist_12345.txt");
    if (!in) {
        std::cout << "could not open file\n";
    }
    return 0;
}

Strukturierte Zeilen analysieren

Kombinieren Sie getline mit istringstream, um die Felder aus jeder Zeile zu analysieren.

#include <iostream>
#include <fstream>
#include <sstream>
#include <string>

int main() {
    std::ofstream("people.txt") << "Alice 30\nBob 25\n";
    std::ifstream in("people.txt");
    std::string line;
    while (std::getline(in, line)) {
        std::istringstream ss(line);
        std::string name; int age;
        ss >> name >> age;
        std::cout << name << " is " << age << '\n';
    }
    return 0;
}

Explizit öffnen und schließen

Sie können einen zunächst ohne Datei erzeugten Stream später mit open() öffnen und mit close() schließen.

#include <iostream>
#include <fstream>

int main() {
    std::ofstream("oc.txt") << "data\n";
    std::ifstream in;
    in.open("oc.txt");
    std::string s; in >> s;
    in.close();
    std::cout << s << '\n';
    return 0;
}

RAII schließt automatisch

Wenn ein ifstream seinen Gültigkeitsbereich verlässt, schließt sein Destruktor die Datei automatisch. Ein manuelles close() ist nur selten erforderlich.

#include <iostream>
#include <fstream>

int main() {
    std::ofstream("raii.txt") << "x\n";
    {
        std::ifstream in("raii.txt");
        std::string s; in >> s;
        std::cout << s << '\n';
    } // file closed here automatically
    std::cout << "closed\n";
    return 0;
}

Kurztest

Testen Sie Ihr Verständnis des Lesens von Zeilen.

Zusammenfassung

Sie haben gelernt, dass std::ifstream:

  • Dateien mit >> und std::getline liest
  • mit is_open() oder durch eine Stream-Prüfung überprüft werden sollte
  • seinen Gültigkeitsbereich über RAII verlässt und dabei automatisch geschlossen wird

Als Nächstes schreiben Sie Dateien mit ofstream.

Häufig gestellte Fragen

Ist die Lektion „Dateien mit ifstream lesen“ kostenlos?

Ja — der vollständige Text von „Dateien mit ifstream lesen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des C++ Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der C++ Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Dateien mit ifstream lesen“?

Text und Daten lesen Du übst C++ Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um C++ Academy zu starten?

Keine Vorkenntnisse erforderlich. C++ Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 1 von 4.

Wie lange dauert die Lektion „Dateien mit ifstream lesen“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser C++ Academy-Lektion Code schreiben und ausführen?

Ja. Jede C++ Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Dateien mit ifstream lesen
  2. Dateien mit ofstream schreiben
  3. Binäre Datei-Ein-/Ausgabe
  4. Fehlerbehandlung und Zustand
← Zurück zu C++ Academy