Проблемы с std :: stoi, не работает на MinGW GCC 4.7.2

#include <iostream>
#include <string>

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

Я попробовал этот код на своем компьютере, на котором работает MinGW GCC 4.7.2. Это дает мне эту ошибку:

введите описание изображения здесь

Что я делаю не так, я получил это от cppreference. Это точно такой же код. И его ошибка отличается от описанной Вот.

8

Решение

Похоже, вашему MinGW нужен патч: Включение функций преобразования строк в MinGW

Этот патч включает следующий список функций и шаблонов C ++ 11
в пространстве имен std:

Стои, Стол, Стоул, Столл, Стоф, Стоуд, Стоолд,
to_string, to_wstring

В приведенной выше ссылке есть .zip файл, скачать его и

  • Скопируйте wchar.h и stdio.h из каталога include в zip-файле
    в следующий каталог (перезаписать): 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 на
    правильный номер версии)
15

Другие решения

Другое решение заключается в использовании MinGW-w64, который работает правильно из коробки. Это форк MinGW, который может производить как 32-битные, так и 64-битные сборки.

1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector