将字符串转换为int数组时,无法让程序在putty上运行

时间:2016-11-04 08:00:32

标签: c++

int H[500]; // global int array
int main()
{
    int check[500];
    bool same = true;
    string input;
    cout << "Enter Numbers: ";
    getline(cin, input);
    istringstream buf(input);
    istream_iterator<string> beg(buf), end;
    vector<string> tokens(beg, end);
    int temp = 1;
    for (auto& s : tokens)  // error: expected initializer before ‘:’ token
    {
        H[temp] = atoi(s.c_str());
        check[temp] = atoi(s.c_str());
        temp++;
    } 
    for (int ii = 1; ii < temp; ii++)
        heapsort(temp);//cpp:43: error: expected primary-expression before ‘for’
                      //         error: expected ‘;’ before ‘for’
                      //         error: expected primary-expression before ‘for’
                      //         error: expected ‘)’ before ‘for’

    return 0;
}

当我尝试在putty上编译它时,我遇到了这些错误。它在视觉工作室上运行良好。我感谢任何帮助。谢谢。

编辑: 我在im on putty上使用“g ++ -0 filename filename.cpp”。

1 个答案:

答案 0 :(得分:1)

Putty不是编译器而是终端,因此我假设putty是指一些带有g++clang++的远程Linux或Unix。我还假设您已经拥有所有必需的包含和命名空间指令,例如using namespace std;语句,因为您说您已在其他地方成功编译了此代码。

我认为您的问题是您需要将-std=c++11添加到编译器参数中。

另外,我使用strtol或更好stringstream代替atoi,因为在使用atoi时无法检查错误,因此您如果输入不正确,最终会在向量中出现一堆零。