У меня есть двоичный файл, из которого я пытаюсь извлечь данные.Последние 5 точек данных в файле представляют собой 10-битные целочисленные типы, и я пытаюсь найти способ извлечь эту информацию и преобразовать ее во что-нибудь читаемое.Я попробовал следующий код:
struct bitField
{
unsigned value: 10;
};
struct Data
{
bitField x;
}
int main()
{
std::array<char,696> buffer;
std::ifstream file ("file.bin", std::ios::in | std::ios::binary);
file.read(buffer.data(),buffer.size());
Data a;
std::memcpy(&a.x.value,&buffer[612],sizeof(struct bitField));
}
Затем я столкнулся с ошибкой attempt to take address of bit-field
.Затем я попытался использовать std::bitset<10>
вместо bitField в моей структуре данных.И хотя я не получаю сообщение об ошибке компилятора, я получаю кучу нулей, которые, как я считаю, являются неверными данными.
Как правильно читать данные?