表达式必须具有常量值

时间:2012-05-01 03:16:28

标签: c++ arrays input

我正在尝试用字符串输入创建一个数组。

string input;
getline(cin,input);
string inputarray1[100];
istringstream pp(input);
int* inputPosition=0;
while (!pp.eof())
{
    getline( pp, inputarray1[*inputPosition], ' ' );
    inputPosition++;
}
int* a = inputPosition;
string halp[a];

我使用getline来解析我的输入(以及一个istringstream)并将其放入一个数组中,但是如何创建一个没有多余空位的数组呢?

2 个答案:

答案 0 :(得分:2)

使用标题<vector>

中的矢量
vector<string> inputArray;
while (getline(pp, input, ' '))
    inputArray.push_back(input);

使用inputArray.size()可以获得字符串数量,您可以像使用数组inputArray[index]一样访问单个元素。

请注意,operator>>在空格上分隔,因此您也可以这样做(除非您出于某种原因希望以不同方式处理标签)

while (pp >> input)
    inputArray.push_back(input);

答案 1 :(得分:0)

我不是100%清楚你的问题,但听起来你真的想用Hash Table代替数组。这样您就可以将用户输入映射到其他内容,而不会显示您提到的空数组位置。