Dev How To Stop Program Console From Closing C

Hello, I am a total beginner at c++

I am writing a console program and I am wondering how I should do to exit the
program, like if the user is asked

Do you want to continue ( yes/no) and the user enters no then I want the console
to shut down...

What is the Best Practice for Combating the Console Closing Issue? How do you keep the console from closing after the program is done in C? When I try to search for it I find lots of stuff about C and other languages, but nothing for C. Also, even for C there doesn't seem to be a definitive answer.

  • 6 Contributors
  • forum 14 Replies
  • 5,215 Views
  • 1 Day Discussion Span
  • commentLatest Postby murnestyLatest Post

Moschops683

Within main, finish the program with return 0;

std::string isShutdown;

std::cout << 'Shutdown? Y/N' << std::endl;
std::cin >> isShutdown;

if (isShutdown 'Y')
{ return 0;}

You can also end a program by using abort() and exit(), but they place additional responsibilities on the conscientious programmer. Using return is the standard way.

Edited by Moschops: n/a
Dev How To Stop Program Console From Closing C-->

Dev How To Stop Program Console From Closing Center

In C++, you can exit a program in these ways:

  • Call the exit function.
  • Call the abort function.
  • Execute a return statement from main.

exit function

How

The exit function, declared in <stdlib.h>, terminates a C++ program. The value supplied as an argument to exit is returned to the operating system as the program's return code or exit code. By convention, a return code of zero means that the program completed successfully. You can use the constants EXIT_FAILURE and EXIT_SUCCESS, also defined in <stdlib.h>, to indicate success or failure of your program.

Issuing a return statement from the main function is equivalent to calling the exit function with the return value as its argument.

abort function

The abort function, also declared in the standard include file <stdlib.h>, terminates a C++ program. The difference between exit and abort is that exit allows the C++ run-time termination processing to take place (global object destructors will be called), whereas abort terminates the program immediately. The abort function bypasses the normal destruction process for initialized global static objects. It also bypasses any special processing that was specified using the atexit function.

atexit function

Use the atexit function to specify actions that execute prior to program termination. No global static objects initialized prior to the call to atexit are destroyed prior to execution of the exit-processing function.

return statement in main

Issuing a return statement from main is functionally equivalent to calling the exit function. Consider the following example:

The exit and return statements in the preceding example are functionally identical. However, C++ requires that functions that have return types other than void return a value. The return statement allows you to return a value from main.

Destruction of static objects

When you call exit or execute a return statement from main, static objects are destroyed in the reverse order of their initialization (after the call to atexit if one exists). The following example shows how such initialization and cleanup works.

Example

In the following example, the static objects sd1 and sd2 are created and initialized before entry to main. After this program terminates using the return statement, first sd2 is destroyed and then sd1. The destructor for the ShowData class closes the files associated with these static objects.

Stop Program California

Dev how to stop program console from closing c section

Another way to write this code is to declare the ShowData objects with block scope, allowing them to be destroyed when they go out of scope:

Dev How To Stop Program Console From Closing Cost

See also