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
>>undstd::getlineliest - 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
- Dateien mit ifstream lesen
- Dateien mit ofstream schreiben
- Binäre Datei-Ein-/Ausgabe
- Fehlerbehandlung und Zustand