Как читать числа, разделенные пробелами, с консоли?

Я пытаюсь выполнить простую задачу чтения чисел, разделенных пробелами, с консоли в вектор , но я не понимаю, как это сделать правильно.

Это то, что я делал до сих пор:

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 , но не смог заставить его работать.

Я не знаю, сколько элементов введет пользователь, поэтому я использую вектор .

Пожалуйста, предложите правильный способ сделать это.

8
задан Ciro Santilli 新疆改造中心法轮功六四事件 11 May 2016 в 17:59
поделиться