如果我执行以下操作:
ifstream file;
file.open("somefile", ios::binary);
unsigned int data;
file >> data;
我的流将始终设置failbit
并且data
将保持未初始化。但是,如果我读 a char
or unsigned char
,则流很好。 perror()
告诉我“结果太大”。
我在 Google 上看到的唯一内容是一个建议,说不operator>>
应该用于二进制数据(prefer read()
),但我发现该运算符更清洁、更易于使用——而且它不需要强制转换所有内容。
有人可以解释这个问题吗?