3

我已经下载了一个实现 BoW(词袋)的代码,但在这一行出现错误:

float label=atof(entryPath.filename().c_str());

它说:“const boost::filesystem::path::value_type *”类型的参数与“const char *”类型的参数不兼容

我一直在搜索,发现这种字符串到 char 之间的转换存在问题,但我找不到与浮点转换相关的任何内容。

我也看到了stringandc_str和之间的区别,我认为错误在于,atof因为我认为只能转换string而不是c_str. 这是可能的错误吗?

此外,我是 boost 库的新手,我不知道如何处理这种情况。

非常感谢,对不起我的英语

4

1 回答 1

5

如果你使用boost::filesystem为什么不使用boost::lexical_cast?如果您在 Windows 上工作,那么将无法atof使用.path.c_str()value_typewchar_t

float label = boost::lexical_cast<float>(entryPath.filename().string());

将完美地工作。

或者你可以简单地使用

float label = atof(entryPath.filename().string().c_str());
于 2013-06-18T11:08:10.517 回答