从十六进制数组中读取Double to vector

时间:2014-12-22 10:08:39

标签: c++

我使用fread使用以下代码

从文件中读取数据
vector<double> table;
table.resize(10);
fread(&table[0],table.size()*sizeof(double), 1, fp);

但现在我将数据放在一个十六进制值为

的数组中

喜欢

const unsigned char data[] = {0x50,0x11,0x12,......};

我知道从哪里读取数据的索引,

int Index = 100;

那么如何从输入数组中读取double类型的数据并填充向量?

2 个答案:

答案 0 :(得分:1)

可能最简单的方法是使用旧的C mem *函数:

memcpy(&table[0], &data[Index], table.size() * sizeof(double));

答案 1 :(得分:1)

您可以在数据周围使用内存流,因此反序列化的相同代码可以在打开的文件,内存或任何流上运行。