首页 > 解决方案 > 使用在代码运行之前未确定的参数在 C++ 中创建新数组

问题描述

我需要创建一个具有随机数生成器创建的大小的数组。任何帮助,将不胜感激!

#include <iostream>
#include <iomanip>
#include <cstdlib>
#include <ctime>

using namespace std;

int main()
{
    srand(time(NULL));
    int parameter;
    char newArray[] = {};
    parameter = rand() % 10;
    newArray[parameter] = {};

    for (int i = 0; i < parameter; i++)
    {
        cout << "Enter a character: ";
        cin >> newArray[i];
    }
    for (int i = 0; i < parameter; i++)
    {
        cout << newArray[i];
        return (0);
    }
}

标签: c++arrays

解决方案


直观的做法是使用std::string,毕竟我们想要一个字符数组:

#include <iostream>
#include <ctime>

int main()
{
    srand(time(NULL));
    int parameter;
    char c;

    std::string newArray; 

    parameter = rand() % 10 + 1; // you'd want to avoid 0 

    while(parameter > 0)
    {
        std::cout << "Enter a character: ";
        std::cin >> c;
        //ignore extra characters
        std::cin.ignore(std::numeric_limits<std::streamsize>::max(), '\n');
        newArray.push_back(c);
        parameter--;
    }
    std::cout << newArray;
}

推荐阅读