将fstream读入位域结构

时间:2017-04-17 22:32:16

标签: c++ struct fstream bit

我正在尝试使用fstream将文件读取为二进制文件到结构中。此文件包含正常对齐的值以及此示意图后面的12和9位值: bitfield schematics 我的结构看起来像这样:

struct sFile{
    unsigned char padding1[765]; //other values before this
    char identifier[2];          //checking if we're in the right spot
    unsigned strID: 9;
    unsigned strValue : 12;
    unsigned eneID : 9;
    unsigned eneValue : 12;
    unsigned dexID : 9;
    unsigned dexValue : 12;
    unsigned vitID : 9;
    unsigned vitValue : 12;
}

我正试图以这种方式阅读

sFile saveFileStruct;
[...]
saveFile.read((char*)&saveFileStruct, sizeof(saveFileStruct));

我很确定我做错了什么,因为当标识符正确时,我会从它们应该有的位置略微移位值。我想知道我在这里做错了什么,或者是否有更好的方法。

谢谢。

0 个答案:

没有答案