Какая функция используется в C++ stdlib для выхода из выполнения программы с кодом состояния?Выйти C++-программа со статусом
В Java есть:
System.exit(0)
Какая функция используется в C++ stdlib для выхода из выполнения программы с кодом состояния?Выйти C++-программа со статусом
В Java есть:
System.exit(0)
Если у вас есть только один поток:
#include <iostream>
int main()
{
std::cout << "Hello, World!\n";
return(0);
// PROGRAM ENDS HERE.
std::cout << "You should not see this.\n";
return(0);
}
Выход:
Hello, World!
return(0);
могут быть размещены где угодно - это» ll end int main()
, и, следовательно, ваша программа.
В качестве альтернативы, вы можете позвонить exit(EXIT_SUCCESS);
or exit(EXIT_FAILURE);
из где угодно:
/* exit example */
#include <stdio.h>
#include <stdlib.h>
int main()
{
FILE * pFile;
pFile = fopen("myfile.txt", "r");
if(pFile == NULL)
{
printf("Error opening file");
exit (1);
}
else
{
/* file operations here */
}
return 0;
}
Обратите внимание, что' return' не выходит из программы, если функция не является 'main', тогда как' exit' завершает программу из любой функции в котором он называется. –
Я видел, что на некоторых системах (в основном Unix-подобных платформах) возврат из 'main' также завершает другие потоки. Я не уверен, что C++ 0x должен сказать об этом, но, увидев, что до недавнего времени потоки не были частью любого языка C или C++, вы могли видеть все виды поведения. Во всяком случае, вопросник очень четко просит «выход». – asveikau
В дополнение к другим ответам вы также можете вызвать прерывание, прекратить quick_exit (выход без вызова деструкторов, deallocating и т.д., следовательно, имя)
прекратить отмену вызовов по умолчанию, но может вызвать любой обработчик завершения, который вы установили.
Пример использования прерывания и set_terminate (к себе обработчик, используемый прекратить), quick_exit можно назвать (смотри пример 2 #)
// set_terminate example
#include <iostream> // std::cerr
#include <exception> // std::set_terminate
#include <cstdlib> // std::abort
void myterminate() {
std::cerr << "terminate handler called\n";
abort(); // forces abnormal termination
}
int main (void) {
std::set_terminate (myterminate);
throw 0; // unhandled exception: calls terminate handler
return 0;
}
quick_exit/at_quick_exit пример:
/* at_quick_exit example */
#include <stdio.h> /* puts */
#include <stdlib.h> /* at_quick_exit, quick_exit, EXIT_SUCCESS */
void fnQExit (void)
{
puts ("Quick exit function.");
}
int main()
{
at_quick_exit (fnQExit);
puts ("Main function: Beginning");
quick_exit (EXIT_SUCCESS);
puts ("Main function: End"); // never executed
return 0;
}
I «Не совсем понятно, почему можно было бы назвать quick_exit, но он существует, и поэтому я должен предоставить ему документацию (любезно предоставлено http://www.cplusplus.com/reference)
Addi можно вызвать at_exit как эквивалент at_quick_exit.
По общему признанию, я не так хорошо знаком с set_terminate и прекращаю, поскольку сам не называю их, но я бы предположил, что вы могли бы использовать quick_exit в качестве обработчика завершения, если хотите; или пользовательский (но, пожалуйста, не цитируйте меня на этом).
В C++ можно использовать выход (0) , например:
switch(option){
case 1:
//statement
break;
case 2:
//statement
exit(0);
-1, быстрый поиск веб дал бы вам ответ в кратчайшие сроки на всех. или даже если вы просто * угадали * ответ. (Я дам вам подсказку: функция называется 'exit') – asveikau