Если я сделаю что-то вроде следующего:
ifstream file;
file.open("somefile", ios::binary);
unsigned int data;
file >> data;
Мой поток всегда будет устанавливать бит отказа
и данные
] останется неинициализированным. Однако, если я читаю вместо этого char
или unsigned char
, поток в порядке. perror ()
сообщает мне, что "результат слишком велик".
Единственное, что я увидел в Google, - это предложение о том, что оператор >>
не следует использовать для двоичных данных (предпочитаю read ()
), но я обнаружил, что оператор чтобы быть чище и проще в использовании - и не требует заливки всего.
Может кто-нибудь объяснить эту проблему?