Textfile auslesen
-
@hustbaer ja, das geht damit ganz toll
@marsmännchen sagte in Textfile auslesen:
da drängt sich mir natürlich die Frage auf was an
!myfile.eof() so schlecht ist? Man sieht es in sehr vielen Beispielen in Verwendung.Da hast du genug Lesestoff: Why is iostream::eof inside a loop condition considered wrong?
-
@marsmännchen Bitte eof() von std Streams nicht mit feof() verwechseln. Heisst zwar ähnlich, tut aber nicht ganz gleich.
-
@marsmännchen sagte in Textfile auslesen:
@wob wo in welchen Beispielen? z.b:
https://mathbits.com/MathBits/CompSci/Files/End.htmVergiss das, insbesondere die Box mit "Rule"! Eigentlich vergiss alles auf dieser Seite!
Unter anderem: assert benutzt man nicht für Checks, ob IO-Operationen erfolgreich waren, sondern für Programmlogik, die immer korrekt sein muss. Header in C++ sind ohne .h, usw. Also: das hat jemand geschrieben, der keine Ahnung von C++ hat.Klar, die Funktion gibt es und das Beispiel zeigt, wie man sie nutzen kann.
https://www.ibm.com/support/knowledgecenter/en/SSLTBW_2.3.0/com.ibm.zos.v2r3.bpxbd00/feof.htm
feof ist nicht stream.eof
Auch besser nicht lesen.
Daher ist es natürlich für mich interessant zu hören das man das nicht tun sollte.
Aber egal, ich will mit solchen Details eure Geduld nicht zu sehr strapazieren. Sowas kann ich auch sicher irgendwo spezifisch lesen wie man EOF genau verwendet.
Danke jedenfalls für die Hilfe!Das "richtige" Pattern in C++ ist:
while (myfile >> wert) { // verarbeite Wert } //oder std::string line; while (std::getline(myfile, line)) { // verarbeite Zeile }
Also: du versuchst zu lesen so lange es geht. eof wird erst NACH einem fehlgeschlagenen Einleseversuch true. Wenn du
while (!file.eof()){ file >> wert; std::cout << wert << '\n'; }
hast, dann ist eof noch false, auch wenn du schon am Ende bist. file >> wert funktioniert dann nicht und setzt eof. Was steht dann in wert und warum wird der noch ausgegeben? Das passt nicht.
-
@wob sagte in Textfile auslesen:
@marsmännchen sagte in Textfile auslesen:
@wob wo in welchen Beispielen? z.b:
https://mathbits.com/MathBits/CompSci/Files/End.htmHaha, schon lange nicht mehr so einen veralteten Dreck gelesen.
-
Dieser Beitrag wurde gelöscht!