初始化并传递数组

时间:2016-08-31 03:25:21

标签: c++ arrays function initialization

我正在尝试创建一个使用单维数组绘制的程序,但是我很难用一个cin语句初始化数组。用户应该看起来像

的示例输入
1<space>2<space>34<space>3<space>2<space>1<space>0<space>10


#include<iostream>
using namespace std;
/*---------------------------------------------------------------------------------------
Prototypes
These are the prototype function(s) that will be used to to draw the row and columns
---------------------------------------------------------------------------------------*/
void draw(int nums);
//---------------------------------------------------------------------------------------
int main(){
    const int MAX = 100;
    int chart[MAX];
    int nums;

    cout << "Enter numbers for the chart" << endl;
    cin >> nums;
    draw(nums);

return 0;
}

void draw(int nums) {
     cout << endl;
     int row;

     for (row = 0; row < nums; ++row) {
         cout << "*" << endl;
     }
}

如何使用给定的样本输入初始化数组,然后将其传递给用于绘制的函数

3 个答案:

答案 0 :(得分:1)

这里有一个简单的(可能不安全但后来又不使用std :: cin用于安全性)实现,似乎可以用于读取数字:

#include <iostream>
#include <list>
#include <sstream>
int main()
{
    std::cout << "Input numbers: ";
    // get input line
    std::string input;
    std::getline(std::cin, input);
    std::stringstream ss(input);
    // read numbers
    std::list<int> numbers;
    while(ss) {
        int number;
        ss >> number;
        ss.ignore();
        numbers.push_back(number);
    }
    // display input
    for(const auto number: numbers) {
        std::cout << number << std::endl;
    }
    return 0;
}

这是一个样本运行:

$ ./a.out
Input numbers: 1 2 3 4
1
2
3
4

答案 1 :(得分:0)

我认为你需要一个解析来解码输入。类似的事情:

void parse(const std::string& input, int output[], int MaxNum)
{
    // parse the integer from the string to output.
}

int main(){
    ......
    std::string input;
    cout << "Enter numbers for the chart" << endl;
    cin >> input;
    parse(input, chart, MAX);
    ......
}

答案 2 :(得分:0)

enter image description here

这是一个程序版本,允许您在cin的帮助下输入一系列只有stringstream行的数字,但唯一的区别是它将输入存储在{ {1}}。然后根据输入绘制直方图。

只需按两次vector键即可让程序知道您输入了数字。

<ENTER>