我正在使用最新版本的C ++,我正在尝试运行以下代码。但是,它一直告诉我stoi是"未在此范围内宣布"。我是C ++的新手,所以如果您有任何想法请分享。
#include <iostream>
using namespace std;
#include <iostream>
using namespace std;
#include <string>
int main(int argc, char *argv[])
{
int a;
for (int i=0; i<argc; i++)
{
string str(argv[1]);
a=stoi(str);
if (a<1) {
cout<< "the sequence length must be greater than 1"<<endl;
} else {
cout <<"consecutive "<< a<<endl; // prints the input number of required consecutive
}
}
int num[1000000];
int n, j;
n=1;
for (int x=1;!cin.eof() ; ++x)
{
cin>>num[x];
if (cin.fail())
{
cout<< "error, only integers allowed"<<endl;
break;
}
else if (x>=a)
{
while ( num[x-n+1] - num[x-n] == 1)
{ ++n;
if (n == a)
{ cout<< "sequence found: " ;
for (j=a-1; j >=0; --j)
cout<< num[x-j]<<" ";
break;
}
}
}
}
cout<<endl;
return 0;
}
答案 0 :(得分:2)
std::stoi
是C++11
及以上功能,因此在编译时启用C ++ 11。
在gcc或clang中,标志为-std=c++11
CXX -std=c++11 cc.cc
其中CXX可以是g++
或clang++
。
请在标题包含部分
中进行此更改#include <iostream>
#include <string>
using namespace std;