C++ ‘;stoi&x2019;未在此范围中声明

C++ ‘;stoi&x2019;未在此范围中声明,c++,c++11,gcc,g++,cygwin,C++,C++11,Gcc,G++,Cygwin,所以这个错误已经被解决了好几次,但没有任何答案对我有帮助。我在Windows10上使用Notepad++和Cygwin。我的代码如下,来自: 你看,我已经应用了前面回答的线程中的所有建议。我有什么遗漏吗?我必须开始使用Ming吗?因为Notepadd++是我在另一个主题中获得最多支持票的一个。这是我发现并尝试过但不起作用的结果: 我还不能评论:(但是你可以使用atoi(numberguesed.c_str())而不是stoi()如果你用std::stoi替换stoi?@oLen已经有使用名称空间

所以这个错误已经被解决了好几次,但没有任何答案对我有帮助。我在Windows10上使用Notepad++和Cygwin。我的代码如下,来自:

你看,我已经应用了前面回答的线程中的所有建议。我有什么遗漏吗?我必须开始使用Ming吗?因为Notepadd++是我在另一个主题中获得最多支持票的一个。这是我发现并尝试过但不起作用的结果:
我还不能评论:(但是你可以使用
atoi(numberguesed.c_str())
而不是
stoi()

如果你用
std::stoi
替换
stoi
?@oLen已经有
使用名称空间std;
?@oLen
$g++-std=c++11-静态ctut.cpp>在函数'int main()“:ctut.cpp:15:25:error:'stoi'不是'std'intnumberguesed=std::stoi(numberguesed);
因此您在编译时设置了
-std=c++11
选项?@πάνταῥεῖ 是的
$g++-std=c++11-static ctut.cpp
我已经尝试过使用或不使用这些选项。哦,非常感谢你,它工作得很好!但是不要。​​​
atoi
被取代有很好的理由。@LightnessRacesinOrbit哦,真的吗?
strtol
那么?@Mohsen:理想情况下,你应该在源代码处解决问题,并使用
stoi
。但是与此同时,
strtol
是一个可行的解决办法,是的。atoi有安全问题,对吗?实际上有很多方法可以转换字符串to int.例如,使用stringstream或boost::lexical\u cast等。
#include <iostream>
#include <vector>
#include <string>
#include <fstream>
#include <cstdlib>
#include <sstream> 
//#include <stdlib.h>
using namespace std;
int main(){
    string numberGuessed;
int intNumberGuessed = 0;
 do {
    cout << "Guess between 1 and 10: ";
     getline (cin,numberGuessed);
     intNumberGuessed = stoi(numberGuessed);
    cout << intNumberGuessed << endl;
 } while (intNumberGuessed != 4);
   cout << "You Win" << endl;
    return 0;
}
$ g++ -std=c++11 -static ctut.cpp
ctut.cpp: In function ‘int main()’:
ctut.cpp:15:43: error: ‘stoi’ was not declared in this scope
      intNumberGuessed = stoi(numberGuessed);