嗨,这是我的第一篇文章;但不是我第一次访问此网站;我试图找到问题的答案,但到目前为止我还找不到。
我目前拥有的是数组的模板类
template<typename T, int size>
class Array{
//Leaving out all my other stuff because I don't thinks its relevant.
private:
T array[size];
}
现在我需要做的是从cin读一行到数组中,例如
>>enter values: 1 2 3 4 5 6 7 8 9
并将它们存储为[1] [2] [3] [4] ... etc 或
>>Enter values: Hello world!
并将它们存储为[Hello] [World!]
大多数询问此问题的人都将其单独输入,例如
>>Enter values: 1
2
3
4
5
etc.
但这不是我所需要的,我不确定如何将其拆分。 我的尝试:
template <typename T, int size>
void Array<T, size>::inputArray() {
T data;
getline(cin,data);
istringstream elements (data);
dynamicArray = elements;
}
但这会带来很多错误。
答案 0 :(得分:1)
std::getline()
读入std::string
,不能像尝试那样直接将其读入T[]
数组。
但是,由于您已经知道了期望的最大元素数量(通过size
模板参数),因此可以简单地循环调用operator>>
来解析{{1 }}从std::istringstream
数据中填充,例如:
std::cin
答案 1 :(得分:0)
对输入使用循环,或者如果要输入一次,则使用除法和模运算符对整数进行分割。将每个新整数存储在数组索引中并递增索引。