CPP: Wie kann ich eine Datei Zeile für Zeile einlesen?
Hey,
ich veruche gerade, eine Datei Zeile für Zeile einzulesen.
Aber dabei soll die erste Zeile bzw. die Zweite, usw. in jeweilige Strings geschrieben werden. Also:
String firstline;
String secondline;
Vielen Dank. :)
Und was ist jetzt Deine konkrete Frage dazu an uns?
Wie man 1 zeile eines files in eine variable schreibt
2 Antworten
Dir ist aber schon klar, dass du keine Variablen dynamisch erstellen kannst...?
Also wenn deine Datei 100 Zeilen hat, dann brauchst du auch 100 Variablen und 100 zuweisungsblöcke z.B. so (Beispiel in Python3).
Hast du dann eine Datei mit 101 Zeilen musst du deinen Code wieder anpassen und
string hunderedAndFirstLine = ""; hinzufügen. Das wird auf Dauer sehr unpraktisch, unnd für eine Person die deine Logik hinter dem Code nicht kennt, sehr verwirrend.
firstLine=''
secondLine=''
thirdLine=''
with open('file.txt','r') as f:
lines = f.readlines() //zeilen in Array einlesen
for i in range(len(lines)):
if i==0: firstLine = lines[i]
elif i==1: secondLine = lines[i]
elif i==2: thirdLine = lines[i]
Besser wäre es also wohl, nach dem f.readlines() aufzuhören. So kannst du dann nämlich die Zeilen einfach über das Array einzeln adressieren. Also
lines[0] => Zeile 1
lines[1] => Zeile 2
usw...
Hat deine Datei aber z.B. immer nur max. 3 Zeilen, dann kann man natürlich auch deine Ursprüngliche Logik verwenden.
Grundsätzlich geht einlesen Zeile für Zeile in c++ so
https://stackoverflow.com/questions/7868936/read-file-line-by-line-using-ifstream-in-c
und das lines Array aus meinem Python Beispiel kannst du entweder über vector<string> oder list<string> lösen ;)
Wie man 1 zeile eines files in eine variable schreibt
Mit der Funktion "getline()".
Siehe https://cplusplus.com/reference/string/string/getline/