Я хочу знать, как и когда я могу использовать exit()
функцию, подобную программе в моей книге:
#include<stdio.h>
void main()
{
int goals;
printf("enter number of goals scored");
scanf("%d",&goals);
if(goals<=5)
goto sos;
else
{
printf("hehe");
exit( );
}
sos:
printf("to err is human");
}
Когда я запускаю его, он показывает ERROR: call to undefined function exit () .
Кроме того, я хочу знать, как я могу создать опцию закрытия окна, в котором работает программа? Например, я создал программу, управляемую с помощью меню, в которой было несколько опций, одна из которых была «выйти из меню» . Как я могу заставить это выйти из программы (т.е. закрыть окно)?
void main()
OTOH просто неправильно . Точно такexit();
же неправильно, и опускать#include <stdlib.h>
неправильно.Ответы:
Попробуйте использовать
exit(0);
вместо этого.exit
Функция ожидает целочисленный параметр. И не забывай#include <stdlib.h>
.источник
exit
Функция объявлена в заголовке STDLIB, так что вы должны иметьв верхней части вашей программы, чтобы иметь возможность использовать
exit
.Также обратите внимание, что он
exit
принимает целочисленный аргумент, поэтому вы не можете называть его какexit()
, вы должны вызывать какexit(0)
илиexit(42)
. 0 обычно означает, что ваша программа завершилась успешно, а ненулевые значения используются в качестве кодов ошибок.Также есть предопределенные макросы
EXIT_SUCCESS
иEXIT_FAILURE
, например,exit(EXIT_SUCCESS);
источник
exit
принимает целочисленный аргумент, но и объяснил, почему он принимает целочисленный аргумент и что некоторые компиляторы требуют явного#include <stdlib.h>
.exit(int code);
объявлен в,stdlib.h
поэтому вам нуженТакже:
- У вас нет параметра для
exit()
, требуетсяint
указать его.- Сожги эту книгу, она использует,
goto
что (для всех, кроме хакеров ядра Linux) плохо, очень, очень , ОЧЕНЬ плохо.Изменить:
О, и
тоже плохо, это:
источник
goto
иногда бывает правильным (и ядро Linux предоставляет множество примеров этого, но это не единственный код, который может его использовать). Но пример OP явно не из таких случаев, так что да, эту книгу следует сжечь :).Попробуй мужик выйти .
Ой, и:
источник
exit()
Функция представляет собой тип функции с типом возвращаемого значения без аргумента. Он определяется заголовочным файлом stdlib.Вам нужно использовать
( exit(0) or exit(EXIT_SUCCESS))
или(exit(non-zero)
илиexit(EXIT_FAILURE) )
.источник
В следующем примере показано использование
exit()
функции.Вывод
источник
Вы должны добавить строку с,
#include <stdlib.h>
чтобы включить этот файл заголовка, иexit
должны вернуть значение, поэтому назначьте некоторое целое число вexit(any_integer)
.источник
В дополнение к возврату кода выхода родительскому процессу -
В UNIX важным аспектом, который, как мне кажется, был упущен, является то, что exit () сначала вызывает (в обратном порядке) все те функции, которые были зарегистрированы вызовом atexit ().
Пожалуйста, обратитесь к SUSv4 за подробностями.
источник
в unix-подобных операционных системах выход относится к группе системных вызовов. системные вызовы - это специальные вызовы, которые позволяют коду пользователя (вашему коду) вызывать код ядра. поэтому вызов выхода выполняет некоторые действия по очистке ОС перед возвратом управления ОС, он завершает программу.
Некоторые компиляторы предоставят вам тот же код операции из обоих этих примеров, но некоторые нет. Например, код операции из первой функции не будет включать какой-либо код операции позиционирования стека, который будет включен во второй пример, как и для любой другой функции. Вы можете скомпилировать оба примера и разобрать их, и вы увидите разницу.
Вы можете использовать выход из любой части вашего кода и быть уверенным, что процесс завершится. Не забудьте указать целочисленный параметр.
источник
Напишите заголовочный файл
#include<process.h>
и замените егоexit();
наexit(0);
. Это определенно будет работать в Turbo C; для других компиляторов я не знаю.источник
exit
Функция объявлена в<stdlib.h>
.Плохая практика программирования. Использование функции goto - это полное запрещение программирования на C.
Также включите заголовочный файл stdlib.h, написав
#include <iostream.h>
для использованияexit()
функции. Также помните, что функция exit () принимает целочисленный аргумент. Используйте,exit(0)
если программа завершилась успешно, и /exit(-1)
или выходите из функции с любым ненулевым значением в качестве аргумента, если программа имеет ошибку.источник
<iostream.h>
специфичен для C ++ и не связан с<stdlib.h>
действительно необходимым заголовком. Только портативные аргументы дляexit
функции являются0
,EXIT_SUCCESS
иEXIT_FAILURE
. Использование любого ненулевого значения для обозначения сбоя характерно для UNIX-подобных систем (и, возможно, некоторых других); не полагайтесь на него в переносимом коде.Включите
stdlib.h
в свой заголовок, а затем позвонитеabort();
в любое место, где хотите выйти из программы. Как это:Когда пользователь входит, переключатель принимает это и передает его в случай 3, в котором вы вызываете
abort
функцию. Он закроет ваш экран сразу после нажатия клавиши ввода.источник
abort
здесь не следует вызывать, он не будет вызыватьatexit
обработчики или сбрасывать буферы открытых файлов. Его следует использовать только для аварийного завершения программы, например, неудачных утверждений и т. Д. Для нормального завершения программыexit
следует использовать.Используйте process.h вместо stdlib и iostream ... Он будет работать на 100%.
источник
<iostream>
Заголовка является специфическим для C ++; вопрос о С.