Различные способы завершения программы C++

Опубликовано: 9 Января, 2023

Программа должна быть прекращена после достижения заявленных целей. Как и любой другой язык, C++ предлагает множество способов завершения программы.

Здесь будут обсуждаться следующие различные методы завершения программы на C++:

  1. функция прерывания()
  2. функция завершения()
  3. функция выхода()

Давайте начнем подробно обсуждать каждый из них.

прервать()

функция прерывания присутствует в заголовочном файле стандартной библиотеки. Он завершает программу быстрее, чем другие методы. Сигнал SIGABRT инициируется функцией прерывания, что приводит к аварийному завершению текущей программы. Рекомендуется использовать его только в самых экстремальных ситуациях, поскольку это приводит к аварийному завершению программы.

Функция abort() завершает программу, не уничтожая объект и вызывая функцию, переданную функциям at_exit() или at_quick_exit() во время завершения.

Синтаксис:

Void abort(void);

Параметр: эта функция не принимает никаких параметров.

Возвращаемое значение: эта функция не возвращает никакого значения.

Пример 1: Ниже приведена программа C++ для прерывания программы после вывода приветственного сообщения.

Выход:

Welcome To GeeksforGeeks !
Aborted

Объяснение: В этой программе два оператора печати используются для двух отображаемых сообщений, а функция прерывания вызывается после одного сообщения. Функция abort() вызывается, когда первое отображаемое сообщение печатает свой вывод при выполнении программы. Программа завершается, когда вызывается функция прерывания. В результате предложение, следующее за методом abort(), не будет выполнено.

Пример 2: Ниже приведена программа C++ для функции Abort() при обработке файлов.

Выход:

No such file found 
Aborted

Объяснение: Эта программа проверяет, присутствует ли данный файл или нет. Если файл отсутствует, то он напечатает сообщение «не найден» и прервет программу.

выход ()

Функция exit() объявлена в заголовочном файле стандартной библиотеки <stdlib.h>. Функция выхода используется для выхода или завершения программы. Функция Exit закрывает программу, игнорируя остальную часть кода.
Другими словами, операторы или коды после объявления функции выхода игнорируются системой или не будут выполняться.
EXIT_SUCCESS и EXIT_FAILURE — это константы, которые определены в файлах заголовков для указания на успешный выход или сбой выхода кода программиста.

Синтаксис:

Exit (value of exit);

Exit(0);

Параметр: функция выхода принимает значение в качестве параметра. Каждое значение, кроме 0, указывает на то, что код был успешно завершен, а каждое значение, кроме 0, указывает на ошибку.

Возвращаемое значение: функция выхода не возвращает значение.

Пример 1: Ниже приведена программа C++ для реализации функции exit():

Выход:

Welcome To GeeksforGeek !

Объяснение: Функция выхода () вызывается, когда первое отображаемое сообщение выводит свой вывод. Программа завершается, когда вызывается функция выхода. Когда вызывается функция выхода, она игнорирует код инструкции после этой функции. следовательно, предложение, следующее за методом exit(), не будет выполнено.

Пример 2: Ниже приведена программа на C++ для реализации функции exit(), которая проверяет, равно ли число 0 или нет.

Выход:

Enter Number : 7
Valid input.
The Number is : 7
Enter Number : 0
Error Occurred!

Объяснение: Когда пользователь вводит положительное значение, он отображает это значение. Однако, если пользователь введет значение 0, эта программа завершится. и оператор, следующий за функцией exit(), игнорируется системой.

завершить()

Когда исключение выдается и не перехватывается, Когда конструктор, деструктор, статический метод или поток выдают исключение. Функции с параметрами at_exit и at_quick_exit вызывают исключение. Поток генерирует исключение.
Когда функция Terminate вызывается в программной системе, она вызывает функцию terminate_handler(), а также функцию прерывания. Метод terminate_handler() вызывает функцию прерывания. Функция завершения может быть вызвана непосредственно программой.

Синтаксис:

Void terminate();

Параметр: не принимает никаких параметров.

Возвращаемое значение: не имеет возвращаемого типа.

Ниже приведена программа C++ для реализации функции terminate():

Выход:

Abort signal from abort(3) (SIGABRT)

Вывод в онлайн-компиляторе:

Welcome To GeeksforGeeks !
terminate called without an active exception
Aborted
C++