【发布时间】:2015-11-28 17:41:12
【问题描述】:
我必须编写一个程序,从键盘读取一行数字并将它们保存到一个数组中,数字必须写在一行中,我写了这个但由于无限循环而无法工作,任何建议?
int main() {
int numCasos = 0, contNumCasos = 0, numElem = 0;
string aux;
cout << "Number of cases: " << endl;
cin >> numCasos;
while (contNumCasos < numCasos) {
cout << "Number of elements: " << endl;
cin >> numElem;
cout << "Enter the Elements separated by space: " << endl;
cin.ignore();
vector.cont = 0;
int i = 0;
while ((vector.cont < numElem) && getline(cin,aux,' ')){
vector.v[i] = stoi(aux);
vector.cont++;
i++;
}
}
cout << sumaBuenos(vector) << endl;
cin.ignore();
system("pause");
return 0;
}
示例:
控制台:元素数量:
用户:4
控制台:输入元素以空格分隔:
用户:2 43 65 56
--这必须是向量
-- 向量.v[0] = 2
-- 矢量.v[1] = 43
-- 矢量.v[2] = 65
-- 向量.v[3] = 56
【问题讨论】:
-
似乎是
std:vector<int> input{std::istream_iterator<int>(std::cin), std::istream_iterator<int>()};的冗长替代品 -
在互联网上搜索可能的重复项:
stackoverflow c++ read file vector space separated. -
我搜索了,但他们给出的解决方案是从文件中读取,我需要从键盘读取
-
有趣的事实:
cin和文件流的行为方式相同。如果将文件替换为cin,则从文件读取的函数也可以从cin读取。