Usar system("pause");
es Ungood Practice ™ porque
Es completamente innecesario .
Para mantener abierta la ventana de la consola del programa al final cuando lo ejecuta desde Visual Studio, use Ctrl+ F5para ejecutarlo sin depurar, o coloque un punto de interrupción en la última llave derecha }
de main
. Entonces, no hay problema en Visual Studio. Y, por supuesto, no hay ningún problema cuando lo ejecutas desde la línea de comandos.
Es problemático y molesto
cuando ejecuta el programa desde la línea de comandos. Para la ejecución interactiva, debe presionar una tecla al final sin ningún propósito. ¡Y para su uso en la automatización de alguna tarea que pause
es muy indeseable!
No es portátil
Unix-land no tiene un pause
comando estándar .
El pause
comando es un cmd.exe
comando interno y no se puede anular, como se afirma erróneamente en al menos otra respuesta. Es decir, no es un riesgo de seguridad, y la afirmación de que los programas AV lo diagnostican como tal es tan dudosa como la afirmación de anular el comando (después de todo, un programa C ++ que invocasystem
está en posición de hacer todo lo que el intérprete de comandos puede hacer, y más). Además, si bien esta forma de pausa es extremadamente ineficiente según los estándares habituales de programación en C ++, eso no importa en absoluto al final del programa de un novato.
Entonces, las afirmaciones en la horda de respuestas antes de esto no son correctas, y la razón principal por la que no debe usar system("pause")
ni ningún otro comando de espera al final de su main
, es el primer punto anterior: es completamente innecesario, no sirve para nada , es muy tonto.
Saludos y hth. - Alf
fuente