Stoi未在scope-Code::blocks中声明 > >编辑:我试图告诉它在编译器标志中单击“有G++遵循C++ 11 ISO C++语言标准”,与C++ 11一起工作。

Stoi未在scope-Code::blocks中声明 > >编辑:我试图告诉它在编译器标志中单击“有G++遵循C++ 11 ISO C++语言标准”,与C++ 11一起工作。,c++,c++11,C++,C++11,我发现stoi没有在范围内声明,我已经将c++11添加到code::Blocks中我在设置->编译器->编译器标志中添加了兼容性,但它仍然不断给我那个错误 当我尝试执行atoi或strtol时,会出现以下错误: C:\Users\user\Desktop\Programming\NewProject\main.cpp | 19 |错误:无法 将'std::string{aka std::basic_string}'转换为'const char*' 对于参数“1”到“long int strtol

我发现stoi没有在范围内声明,我已经将c++11添加到
code::Blocks中我在设置->编译器->编译器标志中添加了兼容性,但它仍然不断给我那个错误

当我尝试执行atoi或strtol时,会出现以下错误:

C:\Users\user\Desktop\Programming\NewProject\main.cpp | 19 |错误:无法 将'std::string{aka std::basic_string}'转换为'const char*' 对于参数“1”到“long int strtol(const char*,char**,int)”的转换|

我的代码:

#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;

}
#包括
#包括
#包括
#包括
#包括
使用名称空间std;
int main()
{
使用的字符串编号;
int numberguesedint=0;
做{

cout要使用atoi,您需要:

        numberGuessedint = atoi(numberGuessed.c_str());

这是与Code::Blocks捆绑在一起的MinGW中的一个已知错误

您可以应用修补程序:


或者下载最新版本的MinGW(最好支持线程,因为您也缺少它)我正在编写一个适合我的解决方案。正如我在stack overflow上发布的大多数解决方案中发现的,早期版本的代码块包含一个bug。因此我删除了旧版本的代码块,并从代码块网站安装了新版本17.12

然后,我在编译器标志中点击了“有G+遵循C++ 11 ISO C++语言标准”。 设置->编译器->编译器标志


它适用于我(我使用的是windows 7)。

哪个编译器?调用编译器的实际命令行是什么?(看起来stoi没有正确启用)你告诉编译器使用C++ 11还是更晚?根据<代码> Stoi 是C++ 11的特性。我下载了代码:用IGW构建的块。我试图告诉它通过C++“11”来点击“有G+遵循C++ 11 ISO C++语言标准”。在编译器标志中。是否有Code::Blocks支持网站或邮件列表?我想你会在那里做得更好。谢谢,我刚刚在那里发布了。希望它能起作用。但问题是关于stoi而不是atoi。不同的首字母。请看。我回答了问题中关于“当我尝试执行atoi或strtol时,我得到以下错误:C:\Users\user\Desktop\Programming\NewProject\main.cpp | 19 |错误:无法将参数'1'的'std::string{aka std::basic_string}'转换为'const char*'到'long int strtol(const char*,char**,int)'|“MAZZA:……这不是一个问题,它是一个部分答案。我爱你。这不是修辞,它不是夸张。它是纯粹的、无条件的爱。没有改变代码块版本,只要点击“有G+遵循C++ 11 ISO C++语言标准”就可以了。