【发布时间】:2014-01-13 18:19:56
【问题描述】:
在 .h5 文件上使用 h5dump,我看到以下数据集:
GROUP "T" {
DATASET "CON" {
DATATYPE H5T_COMPOUND {
H5T_IEEE_F32LE "price";
H5T_STRING {
STRSIZE 1;
STRPAD H5T_STR_NULLTERM;
CSET H5T_CSET_ASCII;
CTYPE H5T_C_S1;
} "label";
H5T_STD_I64LE "amount";
}
}
}
我在 C++ 中创建了以下数据结构:
class RawData
{
public:
float price;
char label[2];
long amount;
};
H5File file2(hdf5Source, H5F_ACC_RDONLY);
DataSet dataset = file2.openDataSet("/T/CON");
size_t size = dataset.getInMemDataSize();
RawData *s = (ExegyRawData*) malloc(size);
CompType type = dataset.getCompType();
dataset.read(s, type);
RawData r = s[0];
当我输出 RawData 成员时,除了价格字段之外,其他所有内容都无法识别。有人能看出我上面写的代码有什么问题吗?
【问题讨论】:
-
您可能想尝试向后转动曲柄 - 填写您的数据结构并尝试将其写入磁盘 - 看看 h5dump 显示什么。