Оператор извлечения потока (>>
) выполняет форматированный IO, а не двоичный IO.Вам нужно будет использовать std::istream::read
вместо этого.Вам также нужно открыть файл как binary
.Да, и проверка std::istream::eof
избыточна в вашем коде.
int32 my_int;
std::ifstream my_stream;
my_stream.open("my_file.txt",std::ios::in | std::ios::binary);
if (my_stream)
{
my_stream.read(reinterpret_cast<char*>(&my_int), sizeof(my_int));
}
//Be sure to check my_stream to see if the read succeeded.
Обратите внимание, что выполнение этого приведет к зависимости платформы от вашего кода, потому что порядок байтов в целом числе различен на разных платформах.