【问题标题】:error: 'stoi' was not declared in this scope (Code::Blocks 16.01 on Windows 10) [duplicate]错误:未在此范围内声明“stoi”(Windows 10 上的 Code::Blocks 16.01)[重复]
【发布时间】: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&lt;string&gt;了吗?
  • Code::Blocks 是一个 IDE。 Windows 是一个操作系统。你的编译器版本是多少?
  • 线索就在问题中!换句话说,无论 gcc 附带 Code Blocks 16.01,我相信它是 gcc 4.8,但不要引用我的话。
  • 了解您使用的编译器版本符合您的最大利益。找出答案,不要将其外包给志愿帮助者。

标签: c++ c++11 windows-10 codeblocks


【解决方案1】:

我相信这是 MinGW 的一个错误。欲了解更多信息,请查看this StackOverflow post。具体来说,DRH 的回答。

【讨论】:

  • 如果您认为答案在另一个问题上,您应该将此问题标记为重复问题。
  • @NathanOliver 我不相信我有足够的声誉将答案标记为重复 - 否则我当然会。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-08-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-20
  • 1970-01-01
相关资源
最近更新 更多