【发布时间】:2017-01-06 21:07:32
【问题描述】:
我收到错误:“stoi”未在此范围内声明。
#include <string>
using namespace std;
...
int x;
x = stoi(arg[0]);
我正在使用 -std=c++11 设置在 Windows 10 上运行 Code::Blocks 16.01。
我在此页面上没有找到任何有用的信息: ‘stoi’ was not declared in this scope
我在某处看到升级 gcc 可以解决这个问题,但我在页面上没有找到合适的安装:https://mingw-w64.org/doku.php/download
相同的代码在 Linux Mint 17.3 上的 Code::Blocks 13.12 中运行良好。
是否有针对此问题的推荐解决方案?这可以通过使用 64 位版本的 MinGW 来解决吗(假设与 Code::Blocks 16.01 兼容)?
更新 有一个解决方法,使用 atoi 和 c_str 代替:
x = atoi(arg[0].c_str());
【问题讨论】:
-
你开启C++11了吗?你
#include<string>了吗? -
Code::Blocks 是一个 IDE。 Windows 是一个操作系统。你的编译器版本是多少?
-
线索就在问题中!换句话说,无论 gcc 附带 Code Blocks 16.01,我相信它是 gcc 4.8,但不要引用我的话。
-
了解您使用的编译器版本符合您的最大利益。找出答案,不要将其外包给志愿帮助者。
标签: c++ c++11 windows-10 codeblocks