我有一个 hdf5 复合数据集,它是用 Python 构建的,我试图从中读取。我有四列,其中一列是长度为 1 的字符串。我设法读取了除字符串列之外的所有内容。下面是我尝试仅读取字符串列的示例代码:
#include <string>
#include <iostream>
#include "H5Cpp.h"
typedef struct data_type {
char string_column[1];
} data_type;
int main ( void )
{
int NBR_OF_ROWS = 28884;
H5::H5File file = H5::H5File(MY_FILE, H5F_ACC_RDONLY);
H5::DataSet dataset = H5::DataSet(file.openDataSet(MY_DATASET));
H5::CompType mtype(sizeof(data_type));
mtype.insertMember("member", HOFFSET(data_type, string_column),
H5::PredType::C_S1);
data_type *data = new data_type[NBR_OF_ROWS];
dataset.read(data, mtype);
std::cout << "string column " << data[0].string_column << std::endl;
return 0;
}
这编译但什么也不打印:(我试图在堆上分配数据数组但无济于事。我在ubuntu上使用g++。
任何帮助都感激不尽。