The default of structs is public, so you don't need to explicitly state public. Also goto statements are not recommended in c++. You should reserve that for programming in assembly. You should be able to structure your program in such a way that it flows from one state to another by either using loops or function calls. Using gotos is just an excuse to get away with bad code structure.
To solve your problem, anywhere you use cin >>, below that put:
This is because cin ignores new lines, so it leaves it in the input buffer when it finds a newline character. But subsequent calls to cin keeps trying to read more input but upon encountering the newline, it just stops reading. The above method clears the newline character.