Qué función se utiliza en C++ stdlib para salir de la ejecución del programa con código de estado?Finaliza con estado
En Java, hay:
System.exit(0)
Qué función se utiliza en C++ stdlib para salir de la ejecución del programa con código de estado?Finaliza con estado
En Java, hay:
System.exit(0)
Suponiendo que sólo tiene un hilo:
#include <iostream>
int main()
{
std::cout << "Hello, World!\n";
return(0);
// PROGRAM ENDS HERE.
std::cout << "You should not see this.\n";
return(0);
}
Salida:
Hello, World!
El return(0);
se puede colocar en cualquier lugar que te gusta - es ll finaliza int main()
, y de ahí su programa.
Alternativamente, puede llamar exit(EXIT_SUCCESS);
or exit(EXIT_FAILURE);
desde cualquier lugar que desee:
/* 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;
}
Tenga en cuenta que' return' no sale del programa a menos que la función pasa a ser 'main', mientras que' exit' dará por terminado el programa desde cualquier función en el que se llama. –
He visto que en algunos sistemas (principalmente plataformas tipo Unix) que vuelven de 'main' también terminan otros hilos. No estoy seguro de lo que C++ 0x tiene que decir sobre esto, pero viendo que hasta hace muy poco los hilos no eran parte de ningún estándar de lenguaje C o C++, es posible que veas todo tipo de comportamientos. En cualquier caso, el que pregunta está muy claramente pidiendo 'salir'. – asveikau
Además de las otras respuestas también se puede invocar aborto, terminar, quick_exit (salidas sin llamar a los destructores, desasignar etc; por lo tanto, el nombre)
terminar las llamadas abortan de manera predeterminada, pero puede llamar a cualquier controlador de terminar de configurar.
Ejemplo de uso de aborto y set_terminate (a SE el controlador utilizado por terminar), quick_exit puede ser llamado (véase el ejemplo 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 ejemplo:
/* 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 No estoy completamente seguro de por qué uno llamaría a quick_exit pero existe y, por lo tanto, debería proporcionar documentación para ello (cortesía de http://www.cplusplus.com/reference)
Addi En principio, se puede llamar a at_exit como el equivalente de at_quick_exit.
Es cierto que no estoy tan familiarizado con set_terminate y termino ya que no los llamo yo mismo, pero supongo que podrías usar quick_exit como un manejador de terminación si lo deseas; o uno personalizado (pero por favor no me cites sobre eso).
En C++, puede utilizar la salida (0) por ejemplo:
switch(option){
case 1:
//statement
break;
case 2:
//statement
exit(0);
-1, una búsqueda rápida en la web te habría dado la respuesta en ningún momento a todos. o incluso si simplemente * adivinó * la respuesta. (Te daré una pista: la función se llama 'exit') – asveikau