可能重复:
How to convert a number to string and vice versa in C++
我正在使用Qt Creator 2.5.0 和gcc 4.7(Debian 4.7.2 -4)。我在.pro文件中添加了“QMAKE_CXXFLAGS + = -std = c ++ 11”。一切似乎都没问题,我使用了C ++ 11 std :: for_each等等。但当我包含“字符串”标题并想使用stoi时,我收到以下错误:
performer.cpp:336: error: 'std::string' has no member named 'stoi'
我发现了一些与MinGW和一个more,Eclipse CDT相关的问题,他们得到了答案。但我使用Linux,为什么它不在这里工作?
答案 0 :(得分:4)
#include <iostream>
#include <string>
int main()
{
std::string test = "45";
int myint = stoi(test);
std::cout << myint << '\n';
}
或
#include <iostream>
#include <string>
using namespace std
int main()
{
string test = "45";
int myint = stoi(test);
cout << myint << '\n';
}
答案 1 :(得分:2)
std::stoi
是命名空间范围内的函数,以字符串作为参数:
std::string s = "123";
int i = std::stoi(s);
从错误消息中看起来您希望它是string
的成员,被调用为s.stoi()
(或者std::string::stoi(s)
);事实并非如此。如果这不是问题,那么请发布有问题的代码,这样我们就不需要猜出它有什么问题了。