11

std::stoi を使用してコンパイルしようとすると、「stoi は std のメンバーではありません」というエラー メッセージが表示されます。コマンドラインから g++ 4.7.2 を使用しているため、IDE エラーになることはありません。役に立ったら、私の OS は 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 に答える