我正在尝试创建一个使用单维数组绘制的程序,但是我很难用一个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;
}
}
如何使用给定的样本输入初始化数组,然后将其传递给用于绘制的函数
答案 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)