I'm fairly sure that istream::get leaves the newline character in the stream rather than extracting it...so your get would be delimited by '\n' on all subsequent 'gets' after the first.
You might consider ignoring characters in the stream up until '\n' after each 'get'.
cin.get() takes the characters from the input stream, but leaves the carriage return (newline) in the stream.
the next time it tries to get characters from, the stream, it find the carriage return (newline) as the first character in the stream - which means that input is immediately finished and it returns with no
characters - but leaves the carriage return (newline) in the stream - as you can see you will enter an infinite loop.
That is why you need to get rid(ignore) the newline character to allow the user a chance to enter new input.