之前我遇到过这个问题,但找到了解决方法,但这次只能解决这个问题。
我正在尝试使用'stof'功能,但我收到的错误是: 'stof'不是'std'的成员 函数'stof'无法解析
如果此页面上有节目,我会以完全正确的方式使用它:http://www.cplusplus.com/reference/string/stof/
这是我的包括:
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
那么,我做错了什么?如果找不到解决方案,有人会指向另一种方法将字符串转换为float并且如果字符串不兼容则让它抛出异常吗?
编辑:使用示例程序和错误进行更新。
#include <iostream>
#include <sstream>
#include <string>
using namespace std;
int main()
{
string testString = "";
float testFloat = 0.0;
testFloat = std::stof(testString);
return 0;
}
我得到的错误是:
描述资源路径位置类型 'stof'不是'std'main.cpp / Assignment / src第33行的成员C / C ++问题
描述资源路径位置类型 函数'stof'无法解析main.cpp / Assignment / src第33行语义错误
答案 0 :(得分:9)
stof是一个C ++ 11函数。确保您的编译器支持它(没有编译器完全支持C ++ 11,尽管现在大多数现代编译器都支持相当大的子集)。
例如,在g ++上,您必须使用-std=c++11
选项(std=c++0x
pre g ++ - 4.7)启用它。
如果您正在使用g ++,请检查您使用g++ -v
的版本 - 如果它是旧版本(例如4.2),则c ++ 11功能将无法使用。
答案 1 :(得分:8)