Если возникла потребность в вводе чего-либо в одну строку можно использовать две встроенные функции: getline и sstream А именно: пусть нам вводят массив чисел неизвестной длины, и мы хотим его считать. Для этого запишем сначала все в строку методом getline:
string s;
getline(cin, s);
далее преобразуем строку в поток ввода с помощью stringstream: stringstream ss(s)
ну а далее с помощью while выполним необходимые операции(в моем случае вывод), для этого создадим переменную val, в которую будем вводить числа из потока ss:
int val = 0;
while(ss >> val){
cout << val << " ";
}