C++ get each digit in int

void print_each_digit(int x)
{
    if(x >= 10)
       print_each_digit(x / 10);

    int digit = x % 10;

    std::cout << digit << '\n';
}

Convert it to string, then iterate over the characters. For the conversion you may use std::ostringstream, e.g.:

int iNums = 12476;
std::ostringstream os;

os << iNums;
std::string digits = os.str();

Btw the generally used term (for what you call "number") is "digit" - please use it, as it makes the title of your post much more understandable :-)


Here is a more generic though recursive solution that yields a vector of digits:

void collect_digits(std::vector<int>& digits, unsigned long num) {
    if (num > 9) {
        collect_digits(digits, num / 10);
    }
    digits.push_back(num % 10);
}

Being that there are is a relatively small number of digits, the recursion is neatly bounded.