我正在尝试执行一项简单的任务,将控制台中的空格分隔的数字读取到vector<int>
,但我不知道如何正确执行此操作。
这就是我到目前为止所做的:
int n = 0;
vector<int> steps;
while(cin>>n)
{
steps.push_back(n);
}
但是,这需要用户按无效字符(例如a
)来打破while
环形。我不想要它。
一旦用户输入数字,例如0 2 3 4 5
并按Enter
我希望这个循环被打破。我尝试使用istream_iterator
and cin.getline
也,但我无法让它工作。
我不知道用户将输入多少元素,因此我正在使用vector
.
请建议正确的方法来执行此操作。
Use a getline
结合一个istringstream
提取数字。
std::string input;
getline(cin, input);
std::istringstream iss(input);
int temp;
while(iss >> temp)
{
yourvector.push_back(temp);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)