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

时间:2013-04-21 14:27:19

标签: c++ mingw

#include <iostream>
#include <string>

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

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

enter image description here

我做错了什么,我是从cppreference得到的。它完全相同的代码。它与描述here的错误不同。

2 个答案:

答案 0 :(得分:15)

您的MinGW似乎需要一个补丁:Enabling string conversion functions in MinGW

  

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

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

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

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

答案 1 :(得分:1)

另一种解决方案是使用MinGW-w64,它可以正常使用。这是MinGW的一个分支,可以生成32位和64位版本。