std :: stoi的问题,不适用于MinGW GCC 4.7.2

Gam*_*iac 8 c++ mingw

#include <iostream>
#include <string>

int main()
{
    std::string test = "45";
    int myint = stoi(test);
    std::cout << myint << '\n';
}
Run Code Online (Sandbox Code Playgroud)

我在运行MinGW GCC 4.7.2的计算机上试过这段代码.它给了我这个错误:

在此输入图像描述

我做错了什么,我从cppreference得到了这个.它完全相同的代码.它与此处描述的错误不同.

mas*_*oud 15

你的MinGW似乎需要一个补丁:在MinGW中启用字符串转换功能

此修补程序在std命名空间中启用以下C++ 11函数和模板列表:

stoi,stol,stoul,stoll,stof,stod,stold,to_string,to_wstring

在上面的链接中,有一个.zip文件,下载它

  • 将wchar.h和stdio.h从zip文件中的include目录复制到以下目录(overwrite):C:\ mingw\include(用适当的目录替换C:\ mingw \)
  • 将os_defines.h复制到以下目录(覆盖):C:\ mingw\lib\gcc\mingw32\4.7.0\include\c ++\mingw32\bits(将C:\ mingw \替换为相应的目录)(替换4.7. 0,版本号正确)