我試圖做一個簡單的任務,從控制檯讀取空格分隔的數字到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