我正在阅读Microsoft Visual C++ 2008中H5文件的数据集.对于int和double类型的数据,一切正常,但遇到字符串时遇到问题.在H5文件中,我有18个字符串,每个字符串都是固定长度24.我的代码如下;
StrType strdatatype(PredType::C_S1, 24);
char *buffer1[18];
DataSet datasetCurveNames = riskFactorsH5.openDataSet("/gstrCurveNames");
datasetCurveNames.read(&buffer1, strdatatype);
Run Code Online (Sandbox Code Playgroud)
在执行时,buffer1充满了错误的指针.作为替代方案,我尝试使用H5T_VARIABLE来管理可变长度字符串并进行修改:
StrType strdatatype(PredType::C_S1, H5T_VARIABLE);
Run Code Online (Sandbox Code Playgroud)
这也失败了.如果有人能够对这个问题有所了解,那将非常感激.
干杯,卢卡斯
HDF5 C++ API严重缺乏文档记录.这是我从数据集中读取字符串的方式.我只是在代码完成IDE的帮助下解决了这个问题:
using namespace H5;
std::string field_name("name of the field");
StrType datatype(0, H5T_VARIABLE);
DataSpace dataspace(H5S_SCALAR);
DataSet datset = group.openDataSet(field_name);
std::string field_value;
datset.read(field_value, datatype, dataspace);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3010 次 |
| 最近记录: |