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: 2022-12-18 12:35 von rrichter