¿Cómo evitar que la aplicación de consola C++ se cierre inmediatamente?
Últimamente, he estado intentando aprender C++ en este sitio web . Desafortunadamente, cada vez que intento ejecutar uno de los ejemplos de código, veo que el programa se abre durante aproximadamente medio segundo y luego se cierra inmediatamente. ¿Hay alguna manera de evitar que el programa se cierre inmediatamente para poder ver los frutos de mi esfuerzo?
Si está utilizando Visual Studio y está iniciando la aplicación de consola desde el IDE:
Al presionar CTRL-F5 (iniciar sin depurar) se iniciará la aplicación y se mantendrá abierta la ventana de la consola hasta que presione cualquier tecla.
Editar: como Charles Bailey señala acertadamente en un comentario a continuación, esto no funcionará si hay caracteres almacenados en el búfer stdin
, y realmente no hay una buena manera de solucionarlo. Si está ejecutando con un depurador adjunto, la solución sugerida por John Dibling es probablemente la solución más limpia a su problema.
Dicho esto, dejaré esto aquí y tal vez a alguien más le resulte útil. Lo he usado mucho como una especie de truco rápido al escribir pruebas durante el desarrollo.
Al final de su main
función, puede llamarstd::getchar();
Esto obtendrá un solo carácter de stdin
, lo que le dará el tipo de comportamiento "presione cualquier tecla para continuar" (si realmente desea un mensaje "presione cualquier tecla", tendrá que imprimir uno usted mismo).
Necesitas hacerlo #include <cstdio>
para getchar
.
La solución de James funciona para todas las plataformas.
Alternativamente, Windows
también puede agregar lo siguiente justo antes de regresar de main
la función:
system("pause");
Esto ejecutará el pause
comando que espera hasta que presione una tecla y también muestra un mensaje agradable.Press any key to continue . . .
Si está utilizando Visual C++ 2010 Express de Microsoft y tiene el problema de que CTRL+F5 no funciona para mantener la consola abierta después de que el programa haya finalizado, eche un vistazo a este hilo de MSDN .
Probablemente su IDE esté configurado para cerrar la consola después de ejecutar CTRL+F5; de hecho, un "Proyecto vacío" en Visual C++ 2010 cierra la consola de forma predeterminada. Para cambiar esto, haga lo que sugirió el moderador de Microsoft:
Haga clic derecho en el nombre de su proyecto y vaya a la página Propiedades, expanda Propiedades de configuración -> Vinculador -> Sistema, seleccione Consola (/SUBSYSTEM:CONSOLE) en el menú desplegable Subsistema. Porque, por defecto, el proyecto vacío no lo especifica.