As a rule of thumb, if you find yourself using "goto" in your C++ code then you are doing something wrong.
I believe the operators on iostream objects are virtualized. You should take the extraction operator attempt to cast the input to the desired data type and if it fails return a null. This way the user can test the input for null instead of this magic "goto-if-then-break" whoi.
Honestly we'd be talking about overloading the primary operator for istream class and it might not have been the best idea for me to jump right at that for a solution in the beginners section.
How about instead of using goto you enter a loop for the user if the fail bit is checked?