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