Если я хорошо понимаю, вы хотите преобразовать любое число, данное пользователем, в цифры, которые составляют это число. Если пользовательский ввод: «123456», вы хотите перехватить как целочисленные переменные этот вывод: {1,2,3,4,5,6}, а затем работать с этим в своем алгоритме. Для этого случая я предлагаю использовать std::string
, а затем вы можете выполнить приведение к (int)
для каждого символа строк. Я предлагаю следующий код, но обратите внимание, что он не предназначен для определения, вводит ли пользователь другой символ, кроме цифр. Заметьте также, что для выполнения приведения я вычитаю 48 из кода символа, потому что это соответствие ASCII.
edit: я не знаю, поможет ли это вам, потому что ваш вопрос был неопределенным в какой-то момент, нопо крайней мере, это было забавно для меня.
#include <iostream>
#include <string>
#include <vector>
int signFun(int i) {
int sign{-1};
if (i % 2== 0) return 1;
else return -1;
}
int main() {
std::string userInputNum;
std::cout << "Introduce a number" << std::endl;
std::cin >> userInputNum;
std::vector<int> digits(userInputNum.length());
int sumDigits{0};
for (unsigned i=0; i<userInputNum.length(); ++i) {
digits[i] = (int)(userInputNum.at(i)-48);
sumDigits += signFun(i)*digits[i];
}
std::cout << sumDigits << std::endl;
}