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、stol、stof、stod、stold、to_string、to_wstring

上記のリンクに.zipファイルがあり、ダウンロードして

  • wchar.h と stdio.h を zip ファイルの include ディレクトリから次のディレクトリにコピーします (上書き): 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

もう 1 つの解決策は、そのままで正しく動作するMinGW-w64を使用することです。これは、32 ビットと 64 ビットの両方のビルドを作成できる MinGW のフォークです。

于 2015-08-02T00:19:37.100 に答える