If you want to pause your program until the user presses a key, you can use cin.get()
. But really, the program should terminate when it's finished. Otherwise, it's useless in pipelines and the like.
If your program's window goes away when it's finished, then something is wrong with the way you launched it. Whether the window stays when the program is done is up to the thing that launches the program and sets up the window, not the program. This problem is usually caused by launching CLI programs from a GUI. If you want to launch from a GUI, write a GUI program. Otherwise, launch terminal programs from the terminal.
Do not use system("pause");
. It makes your program unportable. And if you ever run it on a system whose pause
command does something other than what you want, you may have a very angry user on your hands.
Do not use getch
. That's a Windows console function and a Curses function. It's not part of C++. (Unless you are specifically developing for a platform that has this function and you are sure it does what you want. But this one function would be a really silly reason to make your program unportable.)