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