私は整数値としてファイルのいくつかのバイトを読みたいと思っています。C++ ByteをIntegerとして読み込む方法endianness independent?
ifstream input ("C:/Desktop/myFile", ios::binary);
uint8_t buffer[4] = {0};
input.read((char*)buffer, sizeof(buffer));
しかし、どのように私は、対応する整数値955にバッファ配列を変換することができます。たとえば、ファイルは、私がデータをこのように読むことができる955
に等しい値0x000003BB
が含まれていますか?また、エンディアン独立型の方法で可能な場合、ビッグエンディアンのバイトオーダーのこのファイルと他のいくつかのファイルは、リトルエンディアンのバイトオーダーになっています。ありがとう:)
それはエンディアンを考慮していませんでした。私がデータを出力した場合、varは'0xBB030000 'に等しい値'3137536000'を持っていますが、'0x000003BB 'を得る必要があります – Opa114
@ Opa114実際にこのコードはエンディアンを*任意のエンディアン。単純に間違いがあります。これは、あなたが望むビッグエンディアンではなく、* little *エンディアンを変換します。バッファのインデックスを0から3に変更すると、動作します。 – user2079303
@ user2079303ヒントありがとう! – Opa114