ifstream seekg beyond end gibt eof in VS 2008 Express nicht zurück?

In VS 2005 habe ich folgenden Code:

ifs.open("foo");
while (!ifs.eof())
{
    ifs.read(&bar,sizeof(bar));
    loc = ifs.tellg();
    loc += bar.dwHeaderSize;
    // four byte boundary padding
    if ((loc % 4) != 0)
        loc += 4 - (loc % 4);
    ifs.seekg(loc,ios::beg);
}
ifs.close();

Der Code hat in VS 2005 einwandfrei funktioniert, schlägt jedoch in VS 2008 Express fehl. Nach allem, was ich sagen kann, gibt VS 2008 eof () nicht zurück, nachdem der Code das Ende der Datei erreicht hat. Vermisse ich etwas? Ich habe es behoben, indem ich eine explizite Prüfung hinzugefügt habe, um festzustellen, ob der Suchpfad die Dateigröße überschritten hat, aber ich möchte sichergehen, dass ich ifstream richtig verstehe.

Antworten auf die Frage(1)

Ihre Antwort auf die Frage