Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 使用c+;中输入字符串的长度初始化int数组+;_C++_Arrays - Fatal编程技术网

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

C++ 使用c+;中输入字符串的长度初始化int数组+;,c++,arrays,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 leng

我收到这些错误 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;

}
#包括
#包括
使用名称空间std;
int main()
{
字符串str;
int输入_num;
整数和;

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

std::vector<int> numbers(length, 0);
std::向量数(长度,0);

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

您应该使用标准类
std::vector

比如说

#include <vector>

//...

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

不能声明在编译时大小未知的堆栈分配数组(没有编译器扩展名)不幸的是,该副本没有提到你应该只使用
std::vector
,因为它在标题中被明确禁止。正如任何其他人来到这里寻找与我4年后相同的东西一样,向量的答案正是我所需要的,并承认这个问题有它的问题按照人们的提问方式,它没有理由一直被否决。我很感激这个问题和答案。这是我需要的,也是实现它的目的所需要的道具。
#include <limits>

//...

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