I'm not at a computer right now but i see a couple of things.
1. I personally would break each stage of the input up to make it easier, and consequently, easier to track down your bugs.
2. Cin.get() is unecessary if the user input is wrong, and is likely having a negative affect on the conditions of your while loop