8
#include <iostream>
#include <string>

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

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

在此处输入图像描述

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

4

2 回答 2

15

看来您的 MinGW 需要一个补丁:在 MinGW 中启用字符串转换功能

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

stoi, stol, stoul, 斯托尔, 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. 0 带有正确的版本号)
于 2013-04-21T14:39:44.830 回答
1

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

于 2015-08-02T00:19:37.100 回答