【发布时间】:2011-05-08 07:13:12
【问题描述】:
如果我执行以下操作:
ifstream file;
file.open("somefile", ios::binary);
unsigned int data;
file >> data;
我的流将始终设置failbit,而data 将保持未初始化状态。但是,如果我改为阅读char 或unsigned char,则该流很好。 perror() 告诉我“结果太大”。
我在 Google 上看到的唯一内容是一个建议,说 operator>> 不应该用于二进制数据(更喜欢 read()),但我发现该运算符更简洁且更易于使用 - 它并没有'不需要铸造所有东西。
谁能解释一下这个问题?
【问题讨论】: