Я открыл файл в двоичном режиме, и выполнение описанных ниже операций дает отрицательное значение x. Размер файла, который я открыл, составляет ~ 2,5 ГБ.
infile.seekg(0, ios::end);
__int64 x = infile.tellg();
Мне нужен был infile
для чтения байтов (беззнаковые символы), поэтому я определил его как uifstream
, выполнив:
typedef basic_ifstream<unsigned char, std::char_traits<unsigned char> > uifstream;
, который в основном является стандартным ifstream, но с беззнаковых символов
вместо символов
.
РЕДАКТИРОВАТЬ: Я использую Visual Studio 2005 и исправил uofstream на uifstream.