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;
}
尝试在腻子上编译时出现这些错误。它在Visual Studio上运行良好。感谢您能获得的任何帮助。谢谢。
编辑:
我在腻子上使用“g++ -0 filename filename.cpp”。
最佳答案
Putty
不是编译器,而是终端程序,因此,我假设通过腻子来指的是带有g++
或clang++
的远程Linux或Unix。我还将假定您具有所有必要的include和and namespace 指令,例如using namespace std;
语句,因为您已经说过已在其他地方成功编译了此代码。
我认为您的问题是您需要将-std=c++11
添加到编译器参数中。
另外我会使用strtol
或更好的stringstream
而不是atoi
,因为使用atoi
时无法检查错误,因此如果输入不正确, vector 中最终会出现一堆零。
关于c++ - 将字符串转换为int数组时,无法使程序在腻子上运行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40417783/