1. ホーム
  2. c++

[解決済み] Stoi がスコープ内で宣言されていない - Code::blocks

2022-02-14 21:29:34

質問

編集してください。 コンパイラのフラグで "Have g++ follow the C++11 ISO C++ language standard" をクリックして、C++11で動作するようにしようとしているのですが、どうすればいいですか?

stoi was not declared in scopeと表示され、c++11を Code::Blocks; 設定 -> コンパイラ -> コンパイラフラグで互換性を追加しましたが、まだそのエラーを出し続けています。

また、atoiやstrtolを行おうとすると、以下のエラーが発生します。

C:\Usersuser³³Desktop³³Programming³³NewProject³³main.cpp|19|error: cannot std::string {aka std::basic_string}' を 'const char*' に変換する。 long int strtol(const char*, char**, int)'への引数'1'に対して|Long int strtol(const char*, char**, int)'|Long int strtol(const char*)

私のコード

#include <iostream>
#include <vector>
#include <string>
#include <fstream>
#include <cstdlib>

using namespace std;

int main()
{

    string numberGuessed;
    int numberGuessedint = 0;

    do {

        cout << "Guess a number between 1 and 10: ";
        getline(cin, numberGuessed);
        numberGuessedint = stoi(numberGuessed);
        cout << numberGuessedint << endl;


    } while(numberGuessedint != 4);

    cout << "You win!" << endl;

    return 0;

}

解決方法は?

Code::BlocksにバンドルされているMinGWの既知のバグです。

パッチを適用することができます。 http://tehsausage.com/mingw-to-string

または、MinGWの新しいバージョン(スレッドサポートがあることが望ましい、あなたにも欠けているので)をダウンロードし、今持っているものを置き換えます。