It could be, but your code would either be non-portable (system specific code dealing with grabbing input, for example), or non-scalable. An example of the latter is here:
Code:
#include <iostream>
int main()
{
unsigned int inp;
std::cin >> inp; // Although, this should really read in a string.
// You will have problems if the user enters a non-integer.
// Test it and you will see why. (Hence, Prelude's
// code is much better, but this is an 'absolutely no string'
// solution).
while(inp)
{
std::cout << (inp % 10)) << std::endl;
inp /= 10;
}
}
Now, to see why this should not be prefered, enter a large number: 123456787654321, for example, and see what you get.
*edit*
And Prelude beat me to it...