salida por parametros pantalla mensaje manipuladores libreria instruccion imprimir funciones entrada datos c++ exit

por - manipuladores de salida c++



¿Cómo hago una salida del programa de consola de C++? (11)

¡Sí! exit() . Está en <cstdlib> .

¿Hay una línea de código que terminará el programa?

Algo como sys.exit() python?


En main (), también hay:

return 0;


Hay varias maneras de hacer que su programa termine. Cuál es el adecuado depende de por qué quiere que termine su programa. La gran mayoría de las veces debería ser ejecutando una declaración de retorno en su función principal. Como en el siguiente.

int main() { f(); return 0; }

Como otros lo han identificado, esto permite que todas las variables de tu pila se destruyan adecuadamente para que se limpien correctamente. Esto es muy importante.

Si ha detectado un error en algún lugar del código y necesita salir, debe lanzar una excepción para volver a la función principal. Como en el siguiente.

struct stop_now_t { }; void f() { // ... if (some_condition()) throw stop_now_t(); // ... } int main() { try { f(); } catch (stop_now_t& stop) { return 1; } return 0; }

Esto hace que la pila se desenrolle y se destruyan todas sus variables de pila. Sigue siendo muy importante. Tenga en cuenta que es apropiado indicar un error con un valor de retorno distinto de cero.

Si en el improbable caso de que su programa detecte una condición que indique que ya no es seguro ejecutar más declaraciones, entonces debe usar std :: abort (). Esto hará que su programa se detenga repentinamente sin más procesamiento. std :: exit () es similar, pero puede llamar a los controladores atexit, lo que podría ser malo si su programa está suficientemente borked.


Permitir que el flujo de ejecución abandone main devolviendo un valor o permitiendo que la ejecución llegue al final de la función es la forma en que un programa debe terminar, excepto en circunstancias irrecuperables. Devolver un valor es opcional en C ++, pero normalmente prefiero devolver EXIT_SUCCESS encuentra en cstdlib (un valor específico de la plataforma que indica que el programa se ejecutó correctamente).

#include <cstdlib> int main(int argc, char *argv[]) { ... return EXIT_SUCCESS; }

Sin embargo, si su programa alcanza un estado irrecuperable, debería lanzar una excepción. Sin embargo, es importante darse cuenta de las implicaciones de hacerlo. No existen prácticas recomendadas ampliamente aceptadas para decidir qué debería o no debería ser una excepción, pero hay algunas reglas generales que debe tener en cuenta.

Por ejemplo, lanzar una excepción desde un destructor es casi siempre una idea terrible porque el objeto que se destruye puede haber sido destruido porque ya se ha lanzado una excepción. Si se lanza una segunda excepción, se llama a terminate y su programa se detendrá sin que se haya realizado ninguna limpieza adicional. Puedes usar la uncaught_exception para determinar si es seguro, pero generalmente es una mejor práctica nunca permitir excepciones para dejar un destructor.

Si bien, en general, siempre es posible para las funciones a las que llama pero que no escribió para lanzar excepciones (por ejemplo, new lanzará std::bad_alloc si no puede asignar suficiente memoria), a menudo es difícil para los programadores principiantes realizar un seguimiento de o incluso Conozca todas las reglas especiales que rodean las excepciones en C ++. Por esta razón, recomiendo usarlos solo en situaciones en las que no haya una forma sensata para que su programa continúe la ejecución.

#include <stdexcept> #include <cstdlib> #include <iostream> int foo(int i) { if (i != 5) { throw std::runtime_error("foo: i is not 5!"); } return i * 2; } int main(int argc, char *argv[]) { try { foo(3); } catch (const std::exception &e) { std::cout << e.what() << std::endl; return EXIT_FAILURE; } return EXIT_SUCCESS; }

exit es una retención de C y puede hacer que los objetos con almacenamiento automático no se limpien correctamente. abort y terminate efectiva hace que el programa se suicide y definitivamente no limpiará los recursos.

Hagas lo que hagas, no uses excepciones, exit , abort / terminate como una muleta para evitar escribir un programa estructurado adecuadamente. Guardarlos para situaciones excepcionales.


Si bien puede llamar a exit() (y es posible que tenga que hacerlo si su aplicación encuentra algún error fatal), la forma más limpia de salir de un programa es regresar de main() :

int main() { // do whatever your program does } // function returns and exits program

Cuando llama a exit() , los objetos con duración de almacenamiento automático (variables locales) no se destruyen antes de que finalice el programa, por lo que no obtiene la limpieza adecuada. Es posible que esos objetos deban limpiar todos los recursos que poseen, persistir en los cambios de estado pendientes, terminar los subprocesos en ejecución o realizar otras acciones para que el programa finalice de forma limpia.


Si estás en lo principal puedes hacer:

return 0;

o

exit(exit_code);

El código de salida depende de la semántica de su código. 1 es error 0 en una salida normal.

En alguna otra función de su programa:

exit(exit_code)

Saldrá del programa.


Suficientemente simple..

salida (0); } // fin de la función

Asegúrese de que haya un espacio en ambos lados del 0. Sin espacios, el programa no se detendrá.


salida (0); // al final de la función principal antes de cerrar las llaves


#include <cstdlib> ... /*wherever you want it to end, e.g. in an if-statement:*/ if (T == 0) { exit(0); }


#include <cstdlib> ... exit( exit_code );


else if(Decision >= 3) { exit(0); }