Programm mit seekg
-
Hallo hier wird die Funktion seekg beschrieben:
http://www.cplusplus.com/reference/iostream/istream/seekg/
Wie kann ich den jetzt überprüfen ob die Funktion erfolgreich ausgeführt wurde oder nicht.
Auf cplusplus.com steht: The function returns *this. (Hab ich auch nicht ganz verstanden was das heissen soll)
Und ich hab noch gelesen:
Additionally, in any of these cases, if the appropriate flag has been set with member function ios::exceptions, an exception of type ios_base::failure is thrown.
http://www.cplusplus.com/ios::exceptions
Ich hab versucht das mal umzusetzen aber leider ohne Erfolg:
file.exceptions ( fstream::eofbit | fstream::failbit | fstream::badbit | fstream::goodbit ); try { file.seekg( 0x14B5 ,ios::beg); } catch (ifstream::failure e) { cout << "Exception"; }Das verursacht eine: Abnormal program termination
-
Das bedeutet, dass die Funktion den Stream selbst zurückgibt. Da Streams nach bool konvertierbar sind, kannst du schreiben:
if(stream.seekg(...)) // tu wasEs ist übrigens normalerweise keine gute Idee, Exceptions an den Streams anzumachen. Die Texte sind nämlich meist nicht besonders hilfreich. Schmeiß lieber deine eigene Exception mit einer besseren Beschreibung.