Frage

Ich versuche, meine Datei Parsing robuster zu machen. einen ifstream verwenden, wie ich seekg sicherstellen kann, hält mich in einer gültigen Position innerhalb der Datei?

Das funktioniert nicht:

while(m_File.good() && m_File.peek() != EOF)
{ ...a seekg operation moves file position past end of file... }

Ich nehme an, die aktuelle Iterator hat Art und Weise über das Ende Iterator gedrückt worden, so dass der peek () nie wahr ist.

War es hilfreich?

Lösung

Nein, es gibt keine Möglichkeit, dies zu tun, kurz von der Offset der das Endes der Datei zu finden, und dafür, dass Sie nicht darüber hinaus suchen, was nicht definiert Verhalten führt - man kann natürlich die Größe der Datei erhöhen Schreiben.

Andere Tipps

Wenn es ein Fehler ist, wenn Sie eine schlechte Position erreichen (zB es sollte nicht passieren) Sie können versuchen, die Strom Ausnahme Maske , und die entsprechende Ausnahme außerhalb der while-Schleife fangen. In diesem Fall würde es die „sauberste“ Lösung sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top