failbit vs. badbit
-
Hallo miteinander,
es gibt ja mehrere status-flags, die man fuer filestreams abfragen kann. Von http://www.cpp-home.com/loobian/tutorials/file_io/4.php (btw, ist www.cpp-home.com eine seriöse Quelle?) habe ich erfahren, dass rdstate() failbit bei normalen Fehlern ("non-fatal i/o errors") und badbit bei schweren Fehlern ("fatal i/o errors") zurueck gibt.
Auf welche Fehler sollte man denn bei filestreams achten? Oder ist es besser immer auf beides zu pruefen?
Danke fuer eure Hilfe
Benjamin
-
badbit müsste eof fehler sein
failbit is was ganz schlimmes wie "datei konnte nich geöffnet werden"
-
Auf welche Fehler sollte man denn bei filestreams achten? Oder ist es besser immer auf beides zu pruefen?
Also ich prüf die bits eigentlich nie direkt über rdstate(). Oft mach ich es folgendermassen:
ifstream in("test.txt"); if(!in){ //Datei konnte nicht geöffnet werden }else{ //Datei konnte geöffnet werden } int c; while((c=in.get())!=EOF){ //c gib nach und nach jedes Zeichen }
Man kann allerdings auch dem stream sagen, dass er eine Ausnahme werfen soll anstatt ein Bad/Failbit zu setzen.
-
otze schrieb:
badbit müsste eof fehler sein
failbit is was ganz schlimmes wie "datei konnte nich geöffnet werden"Nö, eof ist eofbit :p
Und bad ist schlimmer als fail ...