ifstream seekg beyond end não retorna eof no VS 2008 Express?
No VS 2005, eu tenho algum código que se parece com isso:
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();
O código funcionou bem no VS 2005, mas ele falha no VS 2008 Express. Pelo que eu posso dizer, o VS 2008 não está retornando eof () após o código buscar o final do arquivo. Estou esquecendo de algo? Eu corrigi-lo adicionando uma verificação explícita para ver se o local de busca excedeu o tamanho do arquivo, mas quero ter certeza de que entendi ifstream corretamente.