So, I\'ve looked around and haven\'t been able to figure out what\'s going on with cin during my While loop. I\'m working through the book C++ Primer (5th edition) and I noticed
As long as you enter valid numbers it will continue to read numbers. You can terminate the loop by entering something which isn't a number, e.g., "goodbye". At the beginning of a line, i.e., immediately after hitting enter you should also be able to terminate the standard input using Ctrl-Z (I think; I normally work on UNIX-like systems where you'd terminate the standard input using Ctrl-D).
Essentially, a stream converts to true as long as neither std::ios_base::failbit nor std::ios_base::badbit is set in its state (you can look at stream's state using stream.rdstate()). As long as you successfully read integers from the stream, it has no reason to go into failure state. When you enter something which isn't an integer, it will get std::ios_base::failbit set. Likewise, when it reaches the end of the stream.