C ++ stoi超出了范围问题

时间:2016-02-05 20:49:21

标签: c++ string scope

我正在使用最新版本的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;
}

1 个答案:

答案 0 :(得分:2)

std::stoiC++11及以上功能,因此在编译时启用C ++ 11。

在gcc或clang中,标志为-std=c++11

CXX -std=c++11 cc.cc

其中CXX可以是g++clang++

请在标题包含部分

中进行此更改
#include <iostream>
#include <string>
using namespace std;