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