ifstream fehlerbehanldung
-
hallo,
hätte eine kleine frage:wie macht man bei mit ifstream bei anglegen eines streams eine richtige Fehlerbehandlung ( etwa wenn die angegebene datei nicht existiert ) ?
ifstream file(filename, std::ios::binary | std::ios::in);
-
Indem man die Fehlerflags abfragt. Die C++-Streams besitzen interne Flags, anhand denen man den Status des Objekts abfragen kann. Zum Beispiel sagt die Memberfunktion
good(), ob alles okay ist. Wenn du nur sehen willst, ob eine Datei geöffnet ist, kannst duis_open()verwenden.Eine Übersicht über
std::ifstreamfindest du hier:
http://www.cplusplus.com/reference/iostream/ifstream/
-
Erwähnenswert wäre vielleicht noch das hier gewesen:
http://www.cplusplus.com/reference/iostream/ios/exceptions/Ein Fehler, im Sinne von "Datei existiert nicht", gibt es allerdings bei den Streams nicht. Es gibt nur sehr allgemeine Fehler, wie "Kann nicht geöffnet werden". Falls du prüfen willst, ob die Datei existiert, dann musst du dies über eine entsprechende API machen. Boost hätte da zum Beispiel Boost.Filesystem anzubieten.
Grüssli