std::vector<int> read_ints;
int _temp;
for(;;)
{
cin >>_temp;
if(!cin.good()) {
break;
}
else {
read_ints.push_back(_temp);
}
}
Я не тестировал это решение, но оно должно считывать произвольное количество целых чисел из cin до тех пор, пока вы не введете что-то кроме целого числа.Вы также можете пропустить сохранение в векторной части, если вам не нужно сохранять результаты.Это просто замечательно, если вы хотите сохранить произвольное число целых чисел.
РЕДАКТИРОВАТЬ: После разъяснения ваше решение может выглядеть следующим образом:
int MAX_CHARS = 10;
int my_int;
cin >> setw(MAX_CHARS) >> my_int;
setw ограничивает количество вводимых символов, но выдолжен включать заголовок iomanip
Если вы хотите получить доступ к каждой цифре, преобразуйте int в вектор целых с помощью этой функции:
vector <int> integerToArray(int x)
{
vector <int> resultArray;
while (true)
{
resultArray.insert(resultArray.begin(), x%10);
x /= 10;
if(x == 0)
return resultArray;
}
}
, тогда вы можете получить доступ к каждой цифре с помощью индекса, например, первой цифры
vectory<int> resultArray = integerToArray(my_int);
int digit = resultArray[0];
Источник