我试图做一个简单的任务,从控制台读取空格分隔的数字到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
和cin.getline
,但我无法正常工作。
我不知道用户将输入多少元素,因此我使用的是vector
。
请建议正确的方法来做到这一点。
但是这种方法需要我不知道的streamsize。你能发表一个示例代码吗? – Asha 2011-03-31 08:52:09
Oops..ok,我现在用@templatetypedef例子得到了它。你指的是自由函数'geline'而不是'cin.getline'。 – Asha 2011-03-31 08:55:33
用代码编辑。 – jonsca 2011-03-31 08:56:12