4

可能重复:
如何在 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相关的问题,还有一个与Eclipse CDT相关的问题,他们得到了答案。但是我使用Linux,为什么它在这里不起作用?

4

2 回答 2

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';
}

看看http://en.cppreference.com/w/cpp/string/basic_string/stol

于 2012-11-27T17:47:29.353 回答
2

std::stoi是命名空间范围内的函数,以字符串为参数:

std::string s = "123";
int i = std::stoi(s);

从错误消息来看,您似乎希望它是 的成员string,被调用为s.stoi()(或可能std::string::stoi(s));事实并非如此。如果这不是问题,那么请发布有问题的代码,这样我们就不需要猜测它有什么问题。

于 2012-11-27T18:20:22.447 回答