4

重複の可能性:
C ++で数値を文字列に、またはその逆に変換する方法

Qt Creator2.5.0とgcc4.7(Debian 4.7.2 -4)を使用しています。.proファイルに「QMAKE_CXXFLAGS+= -std = c++11」を追加しました。すべて問題ないようです。C++11std::for_eachなどを使用しました。しかし、「文字列」ヘッダーを含めてstoiを使用したい場合、次のエラーが発生しました。

performer.cpp:336: error: 'std::string' has no member named 'stoi'

MinGWEclipseCDTに関連するいくつかの質問を見つけそれらに回答がありました。しかし、私は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 に答える