In such a small, simple project, system("Pause"); will work fine, you don't really need to get into uber complex methods of maintaining the display. When you get into larger projects or something that you may release, then you will want to avoid system(); all together.
The only problem with cin.get(); is that it will read the previous "ENTER"s from previous inputs, so it will still exit before you can see the screen. I read somewhere, I think on the above post I linked to, that you can add cin.sync (); but I can't get it to work with the old Borland Compiler (Instead of firing up an IDE or trying to get another compiler to work from the command line, I just use BCC 5.5 with the Scintilla Text Editor for simplicities sake but with some drawbacks, so with a new compiler it may work). If it still won't work for you, you might want to add cin.get (); //without the "Press ENTER to continue after any input to eat up the ENTERs.
Another solution, run the program from the command line.
Yeah, I tried that already, but it still won't work.
Just tried it in Code::Blocks (with the MinGW compiler) and cin.sync(); works without cin.clear ();. Like I said, just an issue with using an old compiler. Of course, Code::Blocks is cool in that it (if run from the "Run" command in the IDE) keeps the console open for you via the "cb_console_runner".
It's bets to use cin.clear() if you extract data from the stream before because it will clear the error state if the user entered letters for an integer. Then you use cin.sync(); cin.ignore(); to keep it open - don't use cin.get() because that will only grab one character, and if the user types more than one character you're in trouble for the next input.