Speichern unter C++
-
Hier ein Beispiel zum Einlesen eines Strings aus einer Datei:
...das schön demonstriert, wie man es *nicht* macht.
-
http://www.volkard.de/vcppkold/dateien.html
http://www.c-plusplus.net/forum/viewtopic.php?t=39470&sid=65bda14ebc059e1e5cceee35a8f8efa7
-
HumeSikkins schrieb:
Hier ein Beispiel zum Einlesen eines Strings aus einer Datei:
...das schön demonstriert, wie man es *nicht* macht.
Na toll!
Und wie macht man es dann richtig??
-
@Erhard
1. Der Fehler verschwindet nicht dadurch, dass du zwei Links postest
2. Der zweite Link enthält kein passendes Beispielprogramm
3. Ein Fehler ist nicht weniger ein Fehler nur weil Volkard ihn auch mal vor Jahren begangen hat.Na toll!
Und wie macht man es dann richtig??string s; while (in >> s) { gesamt += s; gesamt += " "; }
oder besser:
for(string s; in >> s; ) { gesamt += s; gesamt += " "; }
Oder schlicht und einfach:
for(string s; getline(in, s); ) gesamt += s;
Aber das hättest du mit ein bischen Eigeninitiative auch selbst rausfinden können, denn erstens haben wir eine ausführliche Antwort zum Thema Dateihandling in den FAQs und zweitens wird auf dieses eof-Problem hier mindestens einmal pro Woche aufmerksam gemacht.
-
Siehe den entsprechenden Beitrag in der FAQ "Ströme und Dateien in C++"
-
Tut mir leid aber ich kenn mich auf der Seite nicht so aus und außerdem war es eben einfacher einfach zu fragen ich hoffe beim nächsten mal machs ichs besser!
Studierst du noch in Potsdam ?
-
Was ist an while (!in.eof()) genau falsch?
-
Du musst zwischen der Eingabe und der Verarbeitung der Eingabe testen, ob das Dateiende erreicht wird. Bei E.H. steht am Dateiende nach in >> s; ein Leerstring in s, der noch verarbeitet wird, bevor der Test beim nächsten Schleifendurchlauf greift.
Der Ablauf muss also so sein:
for(;;) { in >> s; if (!in) break; gesamt += s; gesamt += " "; }
wobei man das aufgrund verschiedener Tatsachen, die sicherlich nicht ganz zufällig so sind, in C++ so schreiben kann wie Hume das macht.
-
Der Leerstring ist bei der Stringadditon kein Problem, oder doch?
-
Ja, in dem speziellen Fall. Es geht ums allgemeine ... nicht immer sind die Verhältnisse nach dem EOF so günstig.