Yo en lo personal nunca he entendido porque usar System("pause") es tan popular, no lo he entendido
porque siendo un comando del sistema operativo utilizando un lenguaje debería ser tan popular, pues bien es mas que claro que este comando pausara tu programa antes al mandarlo a ejecutar, es decir, el comando es efectivo si realiza el trabajo que se desea al momento, nos ayudara cuando el programa no se detenga para ver resultados, etc. Sin embargo usar este comando es como encender un ventilador para el frió teniendo un aire acondicionado.... bueno muchas personas, incluidos profesores, por alguna razón inexplicable piensan que hacer una llamada al sistema operativo y ejecutar un comando del sistema para detener temporalmente un programa es una buena cosa. Donde esta idea está más allá de mí. Razones:
- No es multiplataforma,es decir, sólo funciona en sistemas que tienen el comando PAUSE en el nivel del sistema, como DOS o Microsoft Windows pero en sistemas Linux y la mayoría de los demás no funcionara...
- Es función muy costosa en recursos, es como usar una bulldozer para abrir una puerta de algún lugar. esto en obvias razones funcionara, pero la clave es más limpio, más fácil, más barato.
¿Qué es lo que hace System()?, pues bien paso a paso mas o mens lo que hace es lo siguiente
- Suspender tu programa
- Llamar al OS.
- Abrir un Shell del OS.
- El OS debe ahora encontrar el comando PAUSE
- Asignar la memoria para ejecutar el comando
- Ejecutar el comando y esperar a que un golpe de teclado
- Des-asignar la memoria que se ha asigno al comando PAUSE
- Salir del OS
- Reanudar el programa en cuestión.
Hay maneras mucho más limpias incluidos en el mismo lenguaje que hace que todo esto sean innecesario.
En C/C++ es posible que tengas que agregar a los header librerías como stdlib.h o cstdlib, pero mas sin embargo es preferible usar funciones que sean propias del lenguaje, como cin.get(); lo que tendríamos que presionar luego seria tecla y el return nos haría continuar de manera mas efectiva nuestro programa.