Uso de la funcion System en C++

Para que sirve la función system en C++

La función system forma parte de la librería cstdlib, es una función de un uso muy especial, porque con ella se pueden hacer cosas muy variadas de forma indirecta, aunque de forma directa podemos decir que sirve para manipular la línea de comandos.

Usualmente se utiliza con el parámetro "pause" para pausar el programa, pero para este fin recomiendo más utilizar la función getch(); ¿por qué?, porque al utilizar system("pause"); aparecerá un mensaje que dice "Presione una tecla para continuar...", con getch(); podemos personalizar el mensaje para el usuario acorde a nuestra necesidad, a continuación les comparto algunos códigos que podemos implementar con la función system para realizar varias tareas.

Pausar el systema con system("pause");



#include <cstdlib>

int main(){

// Aqui el codigo

system("pause");
}


Programa pausado utilizando system

Cambiar el fondo y del texto en C++



Observe lo siguiente system("Color 4a"); para cambiar el color de la línea de comandos en C++ o el color del texto se utiliza la palabra color dentro de comillas, tras dejar un espacio después de la palabra color tenemos que utilizar un código de color donde el primer número o letra indicará el color del fondo y el segundo número o letra indicará el color del texto en el caso anterior se utilizó "4A", en el siguiente código puede observar cómo se implementa

#include <iostream>
#include <cstdlib>

using namespace std;

int main()
{
system("Color 4a");

system("pause");
}


Ejemplo compilado de cambio del color de fondo en C++

Cambie el "4" y la "a" para cambiar los colores, existe un número limitado de colores, en la siguiente tabla se enlistan los colores entre los que puede escoger.

Tabla de colores para fondo y texto C++
CodigoColor
0Negro
1Azul
2Verde
3Celeste cielo
4Rojo
5Morado
6Amarillo
7Blanco hueso
8Gris
9Celeste
aVerde claro
bCeleste claro
cRojo fuerte
dMorado oscuro
eColor crema
fBlanco puro


Limpiar consola de todo el texto previo



Esto es muy útil si queremos realizar una nueva operación o sub proceso y queremos que el usuario ya no vea los datos que le dimos previamente, se utiliza con el parámetro cls que simboliza clear screen y traduce al español como limpiar pantalla.

system("cls");


Como poner un título a programa de consola en C++



Entre las utilidades que se le puede sacar a la función "system();" la más importante a mi parecer es la opción de colocar un título, esto se debe a que existen alternativas para pausar el sistema sin necesidad de 'system("pause")' y el tema de los colores de fondo y de letra no es tan necesario y en muchas ocasiones más bien pueden hacer sentir incomodo al usuario respecto a lo que está acostumbrado a usar, pero el tema de colocar un título a la ventana de nuestro programa por consola es muy útil y añade mayor profesionalismo a nuestros programas.

Esto podemos lograrlo en tan solo una línea de código donde indicaremos la etiqueta Title, y seguido de esta etiqueta separando nada más con un espacio colocaremos el nombre de nuestra ventana.

system( "Title Codigazo: Linea de comandos profesional" );


Si desea puede cambiar durante la ejecución de su aplicación el título, esto puede servir para indicar algún sub proceso de su programa por ejemplo que se llame "Calculadora" luego si el usuario elije la opción de sumar puede llamarse "Calculadora - Suma básica", o si elije la opción de restar "Calculadora - Resta básica", en la barra de titulo se pueden especificar muchas cosas y de ahí esa recomendación de cambiar el titulo cada vez que se necesité.

Código compilado para cambio de titulo de ventana

Como funciona System en C++



Quizá ya se ha dado cuenta que esta función lo que permite es ingresar comandos como si los estuviésemos ingresando por medio de la línea de comandos, entre esas comillas dobles especificamos el nombre del comando y los parámetros que ha de tener en caso que los necesite.
Comentarios y preguntas
Sven González:
Estoy tratando de ejecutar un programa de visual C++ (Windows) desde otro programa de c++.
Conde fondo el comando System el progama se ejecuta pero queda una pantalla de fondo.
La pregunta es : Como hacer para que no aparezca esa pantalla de fondo ?
Codigazo:
hola Sven González, seria bueno saber si está creando una aplicación visual o una aplicación por línea de comandos, también es bueno conocer si está utilizando system("pause"); system("Color 4a"); o con algún otro comando, ¿la pantalla que le aparece de fondo es la línea de comandos?, de ser así puede eliminarla con la función

ShowWindow(GetConsoleWindow(), SW_HIDE );