在 hdf5 中使用 std:: string 会产生不可读的输出

2024-03-31

我目前在 Windows 7 64 位上使用 hdf5 1.8.15。 我的软件的源代码使用utf8编码保存在文件中。

一旦我调用任何支持 std:: string 的 hdf5 函数,输出就会变得神秘

但如果我使用const char*代替std::string,一切正常。这也适用于文件名。

这是一个简短的示例:

std::string filename_ = "test.h5";    
H5::H5File file( filename_.c_str(), H5F_ACC_TRUNC); // works

H5::H5File file( filename_, H5F_ACC_TRUNC); // filename is not readable or
                                            // hdf5 throws an exception

我猜想这个问题是由我的源文件和hdf5中使用的不同编码引起的。但我对此不确定,并且没有找到允许使用的解决方案std::strings。我将不胜感激任何有助于我解决这个问题的想法。


我也遇到了同样的问题,并通过将所有 std::string 或 h5std_string 更改为字面意义来修复它:

5File file("myFile.h5", H5F_ACC_TRUNC);

Or use string.c_str()将字符串更改为const char.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 hdf5 中使用 std:: string 会产生不可读的输出 的相关文章

随机推荐