我已经下载了一个实现BoW(Bag of Words)的代码,我在这行中收到错误:
float label=atof(entryPath.filename().c_str());
Run Code Online (Sandbox Code Playgroud)
它说:类型"const boost :: filesystem :: path :: value_type*"的参数与"const char*"类型的参数不兼容
我一直在搜索,我已经看到这种字符串与char之间的转换存在问题,但我找不到与浮点转换相关的任何内容.
我也看到了string和之间的差异c_str,我认为错误是atof因为我认为只能转换string而不是转换c_str.这可能是错误吗?
另外我是升级库中的新手,我不知道如何管理这种情况.
非常感谢,对不起我的英语
如果使用boost::filesystem为什么不使用boost::lexical_cast?如果您在Windows上工作,那么atof将无法使用path.c_str(),因为value_type是wchar_t.
float label = boost::lexical_cast<float>(entryPath.filename().string());
Run Code Online (Sandbox Code Playgroud)
会很完美.
或者你只是可以使用
float label = atof(entryPath.filename().string().c_str());
Run Code Online (Sandbox Code Playgroud)