Я пытаюсь выполнить простую задачу чтения чисел, разделенных пробелами, с консоли в вектор
, но я не понимаю, как это сделать правильно.
Это то, что я делал до сих пор:
int n = 0;
vector steps;
while(cin>>n)
{
steps.push_back(n);
}
Однако это требует от пользователя нажатия недопустимого символа (например, a
), чтобы разорвать цикл while
. Я этого не хочу.
Как только пользователь вводит числа вроде 0 2 3 4 5
и нажимает Enter
, я хочу, чтобы цикл был прерван. Я также пробовал использовать istream_iterator
и cin.getline
, но не смог заставить его работать.
Я не знаю, сколько элементов введет пользователь, поэтому я использую вектор
.
Пожалуйста, предложите правильный способ сделать это.
#include Пытаясь найти ответ на этот вопрос , я написал эту маленькую тестовую программу: Она работает, как ожидалось, записывает данные в файл и после прочтения файла он правильно печатает: Однако я не уверен, есть ли какие-либо подводные камни (не говоря уже о проблемах с порядком байтов, они всегда возникают при работе с двоичными данными)? Это разрешено? #include
0 1 2 3 4 5 6 7 8 9 1000