私が次のようなことをした場合:
ifstream file;
file.open("somefile", ios::binary);
unsigned int data;
file >> data;
私のストリームは常にを設定しfailbit
、は初期化されdata
ないままになります。char
ただし、またはの代わりに読んだ場合unsigned char
、ストリームは正常です。 perror()
「結果が大きすぎる」と言っています。
私がグーグルで見た唯一のことはoperator>>
、バイナリデータには使用すべきではないという提案でした(prefer read()
)が、演算子はよりクリーンで使いやすいと思います-そしてそれはすべてをキャストする必要はありません。
誰かがこの問題を説明できますか?