11

当我尝试使用 std::stoi 并尝试编译它时,我收到错误消息“stoi is not a member of std”。我从命令行使用 g++ 4.7.2,所以它不会是 IDE 错误,我的所有包含都按顺序排列,g++4.7.2 默认使用 c++11。如果有帮助,我的操作系统是 Ubuntu 12.10。有什么我没有配置的吗?

#include <iostream>
#include <string>

using namespace std;

int main(){
  string theAnswer = "42";
  int ans = std::stoi(theAnswer, 0, 10);

  cout << "The answer to everything is " << ans << endl;
}

不会编译。但这并没有什么问题。

4

2 回答 2

16

std::stoi()在C++11中是新的,所以你必须确保你编译它:

g++ -std=c++11 example.cpp

或者

g++ -std=c++0x example.cpp
于 2013-02-07T05:31:05.297 回答
4

对于旧版本的 C++ 编译器不支持 stoi。对于旧版本,您可以使用以下代码段将字符串转换为整数。

#include <iostream>
#include <string>
#include <cstdlib>
using namespace std;

int main() {
    string input;
    cin >> input;
    int s = std::atoi(input.c_str());
    cout<<s<<endl;
    return 0;
}
于 2015-11-08T18:36:20.183 回答