' Stoi旅馆'在使用-std = c ++ 11

时间:2017-12-01 05:59:08

标签: c++ c++11 compiler-errors codeblocks

最有可能这很奇怪,但是当我收到 stoi未在此范围内声明的错误时,我笑了,因为我熟悉这个错误及其解决方法

我检查了这个选项 让g ++遵循C ++ 11 ISO c ++语言标准[-std = c ++ 11] 在代码块的编译器设置中(16.01) ,与MinGW)并尝试重新编译它,但令人惊讶的是它没有工作,同样的错误仍然存​​在。我尝试重新安装CodeBlocks但是没有用。

另外,我尝试使用{power {1}}的Windows power shell和命令提示符,但也出现了同样的错误。enter image description here

我做错了什么?

代码在这里:

g++ math_handler.cpp -std=c++11

注意

  1. 我尝试了#include<string> using namespace std; int main() { string body="456"; int i=stoi(body); } 和g ++。
  2. -std=c++0x功能相同的问题。
  3. gcc version 4.9.2(tdm -1)

2 个答案:

答案 0 :(得分:2)

好的,我发现它是与CodeBlocks捆绑在一起的MinGW中的已知错误。我找到了解决方案here

  
      
  1. 下载包含三个修补程序的mingw-to-string-gcc47.zip   头文件。 (原始补丁:wchar.hstdio.hos_defines.h

  2.   
  3. 从zip文件的include目录中复制 wchar.h stdio.h   到以下目录(覆盖): C:\ mingw \ include (替换   C:\ mingw \与相应的目录)

  4.   
  5. os_defines.h 复制到以下目录(覆盖):    C:\ mingw \ lib \ gcc \ mingw32 \ 4.7.0 \ include \ c ++ \ mingw32 \ bits (替换   C:\ mingw \与相应的目录)(用4.7替换4.7.0   正确的版本号)

  6.   

答案 1 :(得分:-1)

您是否包含了必需的头文件?     #include <string>

stoi也在std命名空间中:

std::stoi() 

或:

using namespace std;