If you like to develop apps, then C++ programming in Windows with full, modern attractive graphical user interface and the full functionalities of all the available UI elements is very important since Windows users still represent a HUGE market. Despite all the support from the operating system and powerful compilers which spot errors and ‘not responding’ loops, sometimes our C++ apps need to be made to terminate. Alternatively, we sometimes need to indicated that the program has run and exited successfully – or unsuccessfully – from whatever the task the app was undertaking.
How can we exit from a running C or C++ app? How can we exit from a loop in a C++ app but not from the main program? Is return 0;
enough to exit successfully from your app? Let’s see with some C++ examples.
Table of Contents
How to exit a program in C?
In C and C++ programs we can use return
to exit a program. The example below is a “Hello World” C program that can be run with C++ Builder.
1 2 3 4 5 6 7 8 9 |
#include <stdio.h> int main() { printf("Hello World"); getchar(); return 0; } |
In this example above, we print some text with the printf()
function and then we wait to get a character input (key press) with the getchar();
function. Then we exit and return 0;
which signals to the operating system that our app successfully ran and exited.
How to exit a program in C++
In C++, we exit in the same way as we do in C. Instead of getchar()
generally we use system("pause")
.
1 2 3 4 5 6 7 8 9 |
#include <iostream> int main() { std::cout << "Hello World"; system("pause"); return 0; } |
When you exit a C++ program you can use EXIT_SUCCESS
which means your program has successfully completed which is same as using a zero (0). Or you can use EXIT_FAILURE
which means there is a failure on exit of the application, or something did not go as planned. You can use return EXIT_SUCCESS; or return EXIT_FAILURE;
as we show in the example below:
1 2 3 4 5 6 7 8 9 |
#include <iostream> int main() { std::cout << "Hello World"; system("pause"); return EXIT_SUCCESS; } |
The effect is the same as the first example although theconstant values make it a little more readable for people.
How to exit a program in C++ in the early stages?
If you want to exit your main program early, you can use same return
command before. For example:
1 2 3 4 5 6 7 8 9 10 11 |
#include <iostream> int main() { return EXIT_SUCCESS; std::cout << "Safe to exitn"; system("pause"); return EXIT_SUCCESS; } |
How to exit a program in C++ in a loop?
Let’s consider you have a lot of calculations in a loop, and you want to exit from your loop, and you want to continue to other command lines as below,
1 2 3 4 5 6 7 8 9 10 11 |
#include <iostream> int main() { while (true){}; std::cout << "Safe to exitn"; system("pause"); return 0; } |
If you run this example above and you press Ctrl+C
this will end all the application, You will not see the “Safe to exit” prompt and pause operation. How you can exit a C++ loop but not the main()
? To do this, you should create a signal handler (i.e. sighandler()
) that changes a parameter check (i.e. loop ). Then you should set this signalhandler using the signal()
command as below,
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
#include <iostream> #include <signal.h> volatile sig_atomic_t loop; void sighandler(int snum) { loop = 1; } int main() { signal(SIGINT, sighandler); while (!loop){}; std::cout << "Safe to exitn"; system("pause"); return 0; } |
How to exit a program in C++ Builder?
C++ Builder is the easiest and fastest C and C++ IDE for building simple or professional applications on the Windows, macOS, iOS & Android operating systems. It is also easy for beginners to learn with its wide range of samples, tutorials, help files, and LSP support for code. RAD Studio’s C++ Builder version comes with the award-winning VCL framework for high-performance native Windows apps and the powerful FireMonkey (FMX) framework for cross-platform UIs.
You can simply run your application in Debug mode and use STOP button to exit from your C or C++ application.
You can download the free C++ Builder Community Edition here: https://www.embarcadero.com/products/cbuilder/starter.
Professional developers can use the Professional, Architect or Enterprise versions of C++ Builder. Please visit https://www.embarcadero.com/products/cbuilder.