howto:text_by_line
Inhaltsverzeichnis
Text-Datei zeilenweise / wortweise einlesen
zeilenweise
Benutze <fstream> und std::getline(file, line) mit <string> zum zeilenweisen Lesen:
- textfile.cpp
//: textfile.cpp: Text zeilenweise lesen - R.Richter 2011-05-22 /////////////////////////////////////////////////////////////// #include <iostream> #include <fstream> #include <string> int main() { std::string filename; std::cout << "Datei: "; std::cin >> filename; std::ifstream input(filename); if (!input) { std::cerr << "Datei beim Oeffnen der Datei " << filename << "\n"; return 1; } std::string line; while (std::getline(input, line)) { std::cout << line << '\n'; } return 0; }
Der Zeilenumbruch landet nicht in der Zeichenkette line.
wortweise
Als "Wort" gilt jede Folge von Zeichen außer Leerzeichen, Tabulator und Zeilenumbruch (Leerraum = white space).
Zum wortweisen Lesen bindet man den operator>> in die Schleifenbedingung ein. Vorangehender Leerraum wird dabei verschluckt. Konnte kein Wort gelesen werden, endet die Schleife:
std::string word; while (input >> word) { // ... }
Die meisten Versuche, input.eof() in der Schleifenbedingung zu nutzen, funktionieren nicht. Überlege, was passiert, wenn Leerzeichen am Ende des Eingabestroms stehen?
howto/text_by_line.txt · Zuletzt geändert: von rrichter
