ifstream und get ->Endlosschleife Probleme ohne Ende
-
Hallo,
ich schreibe mir gerade für einen Port Knocker Daemon der später mal auf nem Linksys Router laufen soll nen Parser für eine Konfigurationsdatei.
Leider macht mir dabei der ifstream ganz schön zu schaffen der in eine Endlosschleife abdriftet und ich weiß nicht warum.Der Code sieht kurz so aus
:::Code:::
int main(int argv, char**argc) { ifstream is; if (argv<2) exit; is.open(argc[1]); if (!is.is_open) exit; char ch; while (is.get(ch)){ cout << ch; } }Warum hängt das Programm in der while Schleife?
Laut Herbert Schilds C++ Buch liefert is.get(ch) einen null Zeiger beim Datei Ende zurück...
-
Ich bin mit den Streams nicht mehr so gut unterwegs, aber vllt. hilft DIr dieser Artikel weiter:
http://fara.cs.uni-potsdam.de/~kaufmann/?page=GenCppFaqs&faq=eof#Answ
-
Nein der leider nicht. Hab den auch schon gefunden, passt aber irgendwie nicht
-
while ( if.good() ) { /* ... */ }grüße
-
is_open ist eine Methode.
-
MFK schrieb:
is_open ist eine Methode.
Und du siehst ein Problem im Zusammenhang damit?
-
okok is_open ist eine Methode. Hab die Klammern vergessen, der eigentliche Code sieht aber so ähnlich aus und funktioniert trotzdem nicht.
is.good() hab ich auch schon probiert, geht auch nicht
-
procrash schrieb:
der eigentliche Code sieht aber so ähnlich aus
Ich vermute, der Fehler steckt im Unterschied zwischem dem eigentlichen Code und dem, den du gezeigt hast.
-
Hm hat sich erledigt.
Hab den Fehler gefunden. War natürlich meine Schuld.Warum gibts eigentlich auf meinem Linux System die <ifstream> während es bei anderen Systemen nur die <fstream> gibt?