Octal integer constants, starting from 0, such as 0 123, some data say that octal has no negative number, but -0 12 is also an allowed hexadecimal number, starting from 0x, such as 0x35, -0x 12 is also exponential, belonging to real number constants, not to integer constants.
3.-0 12 is not, because in C/C++, binary, octal and hexadecimal numbers are all unsigned numbers. 8E2 is not a floating point number.
4.c doesn't seem to have such a function. You need to write one yourself, C++? It can be judged by cin.good ().