2017-01-05 3 views
-2

오류가 발생합니다. 'stoi'가이 범위에서 선언되지 않았습니다.오류 : 'stoi'가이 범위에서 선언되지 않았습니다. (Code :: Blocks 16.01 on Windows 10)

#include <string> 
using namespace std; 
... 
int x; 
x = stoi(arg[0]); 

-std = C++ 11 설정으로 Windows 10에서 Code :: Blocks 16.01을 실행하고 있습니다.

나는이 페이지에 유용한 정보를 찾을 수 없습니다 : 내가 GCC를 업그레이드하면이 문제를 해결할 수 있지만이 페이지의 적절한 설치를 찾지 못했음을 어딘가에 보았다 ‘stoi’ was not declared in this scope

: https://mingw-w64.org/doku.php/download

동일한 코드가 Linux Mint 17.3의 Code :: Blocks 13.12에서 잘 작동합니다.

이 문제에 대한 권장 수정 프로그램이 있습니까? MinGW의 64 비트 버전을 사용하여이 문제를 해결할 수 있습니까 (Code :: Blocks 16.01과 호환된다고 가정)? 나는 이것이는 MinGW 버그라고 생각

x = atoi(arg[0].c_str()); 
+1

C++ 11을 켰습니까? '#include '을 했습니까? – NathanOliver

+2

Code :: Blocks는 IDE입니다. Windows는 OS입니다. * 컴파일러 * 버전은 무엇입니까? –

+0

실마리가 묻습니다! 즉, gcc가 코드 블록 16.01과 함께 제공되는 gcc는 4.8이라고 생각하지만 그 점을 인용하지 마십시오. – tyebillion

답변

2

:

업데이트 는 atoi 함수 대신 c_str를 사용하여 해결 방법이 있습니다. 자세한 내용은 this StackOverflow post을 확인하십시오. 특히, DRH의 대답.

+2

답변이 다른 질문에 있다고 생각되면이 질문에 대해 중복으로 표시해야합니다. – NathanOliver

+0

@ NathanOliver 나는 대답을 복제물로 표시 할 충분한 평판이 없다고 믿는다. 그렇지 않으면 나는 분명히 가질 것이다. – NoseKnowsAll

+0

물론 가능합니다. [15 담당자에게 질문을 표시 할 수 있습니다] (http://stackoverflow.com/help/privileges/flag-posts) – NathanOliver