Witam.
Nie mam pomysłu na poradzenie sobie z problemem dużej ilości konfiguracji funkcji. Naprzykład funkcja ConsoleSetAttributeText()
1.SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),kolor)
2.SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),kolor | BACKGROUND_INTENSITY);
3.SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),kolor | BACKGROUND_RED | BACKGROUND_INTENSITY);
4.SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),kolor | FOREGROUND_BLACK | BACKGROUND_RED | FOREGROUND_INTENSITY);
I tak dalej… Wywołanie, np.: z batch wygladaloby naprzyklad tak: Teoria:
program.exe jakistekst foregroundred foregroundgreen foregroundblue foregroundintensity backgroundred backgroundgreen backgroundblue backgroundintensity
Praktyka:
program.exe "tekst o potworze" 1 0 0 1 1 0 0 1
albo jeszcze inna kombinacja, na przykład:
program.exe "fopa" 0 0 0 0 0 0 0 1
Co robić w takich przypadkach? Najlepiej prosiłbym o przykładowy kod. Początek i problem:
int main(int argc, char *argv[])
{
//przyklad: program.exe -cx 'tekst' 'kolor ' piszciagle(1-tak)' foregroundred foregroundgreen foregroundblue foregroundintensity backgroundred backgroundgreen backgroundblue backgroundintensity
    if(argv[1] == cx && argv[2] != NULL && argv[3] != NULL && argv[4] != NULL && argv[5] != NULL && argv[6] != NULL && argv[7] != NULL && argv[8] != NULL && argv[9] != NULL && argv[10] != NULL && argv[11] != NULL && argv[12] != NULL)
    {
        char * tekst = argv[2];
        int kolor = atoi(argv[3]);
        int varzm = atoi(argv[4]);
        int foregroundred = atoi(argv[5]); //opcja1
        int foregroundgreen = atoi(argv[6]);
        int foregroundblue = atoi(argv[7]);
        int foregroundintensity = atoi(argv[8]); //opcja2
        int backgroundred = atoi(argv[9]); //opcja3
        int backgroundgreen = atoi(argv[10]);
        int backgroundblue = atoi(argv[11]);
        int backgroundintensity = atoi(argv[12]); //opcja4
        //opcje z wyswietlaniem tekstu
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), kolor | BACKGROUND_RED | FOREGROUND_INTENSITY);
                std::cout << tekst << std::endl;
        if(varzm == 1)//piszciagle
        {
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), 7);
        }
        if(varzm== 0 )
        {
            SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),kolor);
        }
    }
return 0;
}
P.S Wiem że początek z ifem mogę zrobić lepiej, potem się tym zajmę.

 )
 )