This is perfectly expected behavior. What would you expect, conversion from character to integer? You can do it, but then the input character "1" will return integer equal not to 1 but ASCII value of "1" which is 0x31.
How to do things correctly? First, you need to decide what you really want on input (you cannot do both, because there cannot be universal application of input, integer or character(s) to be converted to ASCII). Decide what you want first.
Secondly, learn just a bit about C++ programming and them try again. Right now, you're not even trying to code in C++. Look at your "goto"? Who would do such things. This is a clear indication that you're a bit confused about programming activity in general. Start some book of on-line course with elementary coding exercises.
See my recommendations:
I have a problem with my program. Please help![
^].
Good luck,
—SA