EXIT()
Функция exit(), находящаяся в стандартной библиотеке, вызывает немедленное окончание работы программы. Поскольку функция exit() останавливает выполнение программы и форсирует возврат в операционную систему, она используется для управления устройствами, и ее использует подавляющее большинство программ. Функция exit() имеет следующий вид:
void exit (int статус);
Она использует заголовочный файл stdlib.h. Значение статуса возвращается в операционную систему.
Для индикации корректности завершения работы exit() традиционно вызывается с аргументом 0.
Другие аргументы используются для индикации различного рода ошибок. Можно также использовать предопределенные макросы EXIT_SUCCESS и EXIT_FAILURE в качестве значений для статуса.
exit() используется, когда условия выполнения программы неудовлетворительны. Например компьютерная игра может требовать специальный графический адаптер. Функция main() данной игры может выглядеть следующим образом:
#include
int main(void)
if (!special_adaptor()) exit(1);
play ();
return 0;
>
где special_adaptor() — это определенная пользователем функция, возвращающая истину, если необходимый адаптер присутствует. Если карта в системе отсутствует, то данная функция возвращает ложь и программа завершает работу.
В другом примере exit() используется для выхода из программы и возврата в операционную систему
void menu(void)
char ch;
printf («1. Check Spelling\n»);
printf («2. Correct Spelling, Errors\n»);
printf(«3. Display Spelling Errors\n»);
printf(«4. Quit\n»);
printf(» Enter your choice: «);
do ch = getchar(); /* чтение клавиатуры */
switch(ch)
case ‘1’:
check_spelling();
break;
case ‘2’:
correct_errors();
break;
case ‘3’:
display_errors ();
break;
case ‘4’:
exit(0); /* возврат в ОС*/
>
>
while(ch!=’1′ && ch!=’2′ && ch!=’3′);
>
Как правильно остановить программу?
Недавно узнал, что system(«pause»); в конце кода лучше не использовать.
Тогда как надо правильно остановить программу?
З.Ы. Когда стоит применять system(«pause»);?
- Вопрос задан более двух лет назад
- 335 просмотров
Комментировать
Решения вопроса 1
Армянское Радио @gbg Куратор тега C++
Любые ответы на любые вопросы
Для того, чтобы посмотреть вывод программы, ее вовсе не надо останавливать — достаточно настроить IDE так, чтобы она не закрывала терминал после завершения программы.
Если сильно хочется, можно использовать вот такой код:
#include // Required for streamsize #include #include #include // Required for numeric_limits void myflush ( std::istream& in ) < in.ignore ( std::numeric_limits::max(), '\n' ); // опустошаем все что есть в буфере in.clear(); > void mypause() < std::cout
Остановить программу на Си
P.S. Все-таки "вызовите" с маленькой буквы, ибо предложение в моей голове звучало как "Еще раз сканф вызовите в конце и все.". Если это грамматически неверно, то поправьте еще раз.
Отслеживать
ответ дан 17 сен 2011 в 13:25
AlexDenisov AlexDenisov
6,442 1 1 золотой знак 20 20 серебряных знаков 29 29 бронзовых знаков
Или getch(); , или while(!kbhit()); .
17 сен 2011 в 13:26
Все дело в том, что при нажатии [Enter] в поток стандартного ввода кроме набранных Вами символов числа заносится символ перевода строки ('\n'). getchar() считывает его и программа не дожидается следующего [Enter], чего Вы видимо хотите.
Реально, в Вашем случае (я думаю это консоль в Виндоус), вызовите (как уже отвечено @Tim и @gecube) getch(). Эта функция ожидает нажатия символа на клавиатуре и возвращает его код. Данный символ не заносится (!) в поток стандартного ввода и более того, даже в случае если это ^Z не закрывает поток (EOF в таком случае Вы не получите).
kbhit() опрашивает клавиатуру без ожидания ("жрет процессор") и возвращает 0, если никакая клавиша не нажата и 1 (не код введенного символа!) если что-нибудь нажали. Код нажатой клавиши помещается в конец потока стандартного ввода.
Надеюсь эта информация окажется Вам полезной при программировании ввода с консоли.
прервать выполнение программы в консоли
А, вон он о чем. Мастерски вопросы люди задают, я шизею просто.
Готовься кивопросам «че это», «а как» и «напишите мне на языке программирования выход из программы».
Zhbert ★★★★★
( 29.11.17 13:54:48 MSK )
Ответ на: комментарий от waker 29.11.17 13:52:36 MSK
покажите как пожалуйста? программа закрывается с помощью ctrl+z
logonsessons
( 29.11.17 14:00:30 MSK ) автор топика
Ответ на: комментарий от logonsessons 29.11.17 14:00:30 MSK
Ну расскажите подробнее - что за программа, каким действием вы хотите ее закрыть, что вы уже пробовали, что нагуглили.
vaddd ★☆
( 29.11.17 14:37:59 MSK )
Ответ на: комментарий от vaddd 29.11.17 14:37:59 MSK
закрывается с помощью ctrl+z она
logonsessons
( 29.11.17 14:38:59 MSK ) автор топика
cnsr
( 29.11.17 14:42:06 MSK )
Как программно реализовать такой выход в консоли
Как из другой программы закрыть эту программу?
Как свою программу сделать закрывающейся по Q?
Сформулируй, что тебе вообще нужно-то, а то вон телепаты мимо бьют.
massimus ★★★
( 29.11.17 14:42:30 MSK )
Ответ на: комментарий от logonsessons 29.11.17 14:38:59 MSK
Ну расскажите подробнее - что за программа, каким действием вы хотите ее закрыть, что вы уже пробовали, что нагуглили.
Какой информативный ответ. Так и быть, давайте еще раз попробуем:
ну расскажите подробнее - что за программа, каким действием вы хотите ее закрыть, что вы уже пробовали, что нагуглили.