У меня проблемы с чтением большого файла в мой собственный буфер в C ++ в Visual Studio 2010. Ниже приведен фрагмент моего кода, где length - это размер файла, в котором я читаю, bytesRead установлен в 0, прежде чем это выполняется, и файл является std :: ifstream.
buffer = new char[length];
while( bytesRead < length ){
file.read( buffer + bytesRead, length - bytesRead );
bytesRead += file.gcount();
}
file.close();
Я заметил, что gcount () возвращает 0 при втором чтении и далее, что означает, что read () не дал мне никаких новых символов, так что это бесконечный цикл. Я хотел бы продолжить читать остальную часть файла. Я знаю, что eofbit устанавливается после первого чтения, хотя в файле больше данных.
Я не знаю, что я могу сделать, чтобы читать дальше. Пожалуйста, помогите.