使用c ++中的输入字符串的长度初始化int数组

时间:2015-04-09 20:18:17

标签: c++ arrays

我收到这些错误 1.不能分配一个常量大小为0的数组 2.预期的常数表达 3.'数字':未知大小

#include <iostream>
#include <string>
using namespace std;

int main()
{
string str;
int input_num;
int sum;

cout << "Enter the number:" << endl;
getline(cin, str);
const int length = str.length();
cout << "Length:" << length<<endl;
//input_num = stoi(str);
int numbers[length];

return 0;

}

2 个答案:

答案 0 :(得分:0)

std::vector替换数组的使用,并将元素初始化为0

std::vector<int> numbers(length, 0);

答案 1 :(得分:0)

数组的大小必须是大于0的常量表达式。

您应该使用标准类std::vector<int>

例如

#include <vector>

//...

std::vector<int> numbers( length );

如果用户必须输入一些类型,例如int(即数字可能在int类型的对象的可接受值范围内),那么您可以预先按以下方式定义数组< / p>

#include <limits>

//...

int numbers[std::limits<int>::digits10 + 1];