isdigit() is meant to be passed chars. For example !isdigit('c') but isdigit('4').
iInput is already a number, so if we follow the logic you were trying to use, isdigit() should always return true (all ints are numbers).
operator>>() returns false if the input couldn't be put in the right hand operand. In other words, if (cin >> iInput) can tell you if the input is invalid.