У меня был этот фрагмент в программе (в Visual Studio 2005):
if(_eof(fp->_file))
{
break;
}
Он разорвал замкнутый цикл при достижении eof.Но программа не смогла проанализировать последние несколько тысяч символов в файле.Итак, чтобы выяснить, что происходит, я сделал следующее:
if(_eof(fp->_file))
{
cout<<ftell(fp)<<endl;
break;
}
Теперь ответ, который я получил от ftell, отличался (и меньше) от фактического размера файла (который не ожидается)).Я думал, что Windows может иметь некоторые проблемы с файлом, затем я сделал это:
if(_eof(fp->_file))
{
cout<<ftell(fp)<<endl;
fseek(fp, 0 , SEEK_END);
cout<<ftell(fp)<<endl;
break;
}
Ну, fseek () дал правильный ответ (равный размеру файла) и начальный ftell ()не удалось (как было сказано ранее).
Есть идеи о том, что здесь может быть не так?
РЕДАКТИРОВАТЬ: Файл открыт в режиме "rb".