Invece di usare il comando COLOR del prompt dei comandi tramite la system usa la apposita API di Windows SetConsoleTextAttribute.
Esempio:
codice:
#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
HANDLE hStdOut=GetStdHandle(STD_OUTPUT_HANDLE);
if(hStdOut==NULL)
{
cerr<<"Impossibile ottenere un handle alla console.";
return 1;
}
cout<<"Questo testo ha le impostazioni di default."<<endl;
cout<<"Anche questo, ma da qui in poi ";
SetConsoleTextAttribute(hStdOut,FOREGROUND_RED|FOREGROUND_BLUE|BACKGROUND_GREEN|BACKGROUND_INTENSITY);
cout<<" tutto viene scritto in viola su sfondo verde chiaro."<<endl;
SetConsoleTextAttribute(hStdOut,FOREGROUND_RED|FOREGROUND_BLUE_|FOREGROUND_GREEN);
cout<<"Ora tutto e' normale."<<endl;
return 0;
}
Tieni conto che il colore viene specificato come combinazione di costanti rosso-verde-blu-intensità riferite a primo piano o a sfondo. Ad esempio per ottenere un giallo scuro in primo piano e un viola chiaro di sfondo dovrai specificare
codice:
FOREGROUND_RED|FOREGROUND_GREEN|BACKGROUND_RED|BACKGROUND_BLUE|BACKGROUND_INTENSITY
dal momento che il giallo è la somma di rosso e verde e il viola chiaro è somma di rosso e blu e "intensità".