Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C++ Builder > как задать цвет шрифта в консоли?


Автор: vladd 13.6.2012, 09:33
Попробовал так
Код

 textcolor(14);


Не работает. Как можно поменять цвет шрифта в консоли?

Автор: SenkraD 13.6.2012, 11:12
попробуй http://www.cplusplus.com/forum/beginner/5830/ для начала, потом будем помогать искать ошибки

Автор: vladd 13.6.2012, 12:08
В моем компиляторе Unicode работает частично. На эти примеры пишет ошибки.
Код

#include <iostream>

int main()
{    
    while(true)
    {
        system("Color 1A");
        std::cout << "\t\t\t    Hello World" << std::endl;
        system("Color 2B");
        std::cout << "\t\t\t    Hello World" << std::endl;
        system("Color 3C");
        std::cout << "\t\t\t    Hello World" << std::endl;
        system("Color 4D");
        std::cout << "\t\t\t    Hello World" << std::endl;
        system("Color 5E");
        std::cout << "\t\t\t    Hello World" << std::endl;
        system("Color 6F");
        std::cout << "\t\t\t    Hello World" << std::endl;
        system("Color A1");
        std::cout << "\t\t\t    Hello World" << std::endl;
        system("Color B2");
        std::cout << "\t\t\t    Hello World" << std::endl;
        system("Color C3");
        std::cout << "\t\t\t    Hello World" << std::endl;
        system("Color D4");
        std::cout << "\t\t\t    Hello World" << std::endl;
        system("Color E5");
        std::cout << "\t\t\t    Hello World" << std::endl;
        system("Color F6");
        std::cout << "\t\t\t    Hello World" << std::endl;
    }
    return 0;
}
 

Ошибка
Код

E2268 Call to undefined function 'system'



Для 2 программы 
Код

#include <iostream>
#include <windows.h>

int main()
{
    const WORD colors[] =
        {
        0x1A, 0x2B, 0x3C, 0x4D, 0x5E, 0x6F,
        0xA1, 0xB2, 0xC3, 0xD4, 0xE5, 0xF6
        };

    HANDLE hstdin  = GetStdHandle( STD_INPUT_HANDLE  );
    HANDLE hstdout = GetStdHandle( STD_OUTPUT_HANDLE );
    WORD   index   = 0;

    // Remember how things were when we started
    CONSOLE_SCREEN_BUFFER_INFO csbi;
    GetConsoleScreenBufferInfo( hstdout, &csbi );

    // Tell the user how to stop
    SetConsoleTextAttribute( hstdout, 0xEC );
    std::cout << "Press any key to quit.\n";

    // Draw pretty colors until the user presses any key
    while (WaitForSingleObject( hstdin, 100 ) == WAIT_TIMEOUT)
    {
        SetConsoleTextAttribute( hstdout, colors[ index ] );
        std::cout << "\t\t\t\t Hello World \t\t\t\t" << std::endl;
        if (++index > sizeof(colors)/sizeof(colors[0]))
            index = 0;
    }
    FlushConsoleInputBuffer( hstdin );

    // Keep users happy
    SetConsoleTextAttribute( hstdout, csbi.wAttributes );
         system("PAUSE");
    return 0;
}



Вообще никакой реакции.

Автор: Dem_max 13.6.2012, 12:22
Цитата

E2268 Call to undefined function 'system'


наверное потому что отсутствует #include <stdlib.h>

Автор: vladd 13.6.2012, 12:38
Спасибо. Заработал такой код.
Код


#include <iostream>
 #include <stdlib.h>

int main()
{    
    while(true)
    {
        system("Color 1A");
        std::cout << "\t\t\t    Hello World" << std::endl;
                  system("PAUSE");
        system("Color 2B");
        std::cout << "\t\t\t    Hello World" << std::endl;
                  system("PAUSE");
        system("Color 3C");
        std::cout << "\t\t\t    Hello World" << std::endl;
                  system("PAUSE");
        system("Color 4D");
        std::cout << "\t\t\t    Hello World" << std::endl;
                  system("PAUSE");
        system("Color 5E");
        std::cout << "\t\t\t    Hello World" << std::endl;
                  system("PAUSE");
        system("Color 6F");
        std::cout << "\t\t\t    Hello World" << std::endl;
                 system("PAUSE");
        system("Color A1");
        std::cout << "\t\t\t    Hello World" << std::endl;
                 system("PAUSE");
        system("Color B2");
        std::cout << "\t\t\t    Hello World" << std::endl;
                  system("PAUSE");
        system("Color C3");
        std::cout << "\t\t\t    Hello World" << std::endl;
                 system("PAUSE");
        system("Color D4");
        std::cout << "\t\t\t    Hello World" << std::endl;
                   system("PAUSE");
        system("Color E5");
        std::cout << "\t\t\t    Hello World" << std::endl;
                  system("PAUSE");
        system("Color F6");
        std::cout << "\t\t\t    Hello World" << std::endl;
                  system("PAUSE");
    }
    return 0;
} 


Вопрос. А какой участок кода меняет цвет шрифта? 

Автор: Dem_max 13.6.2012, 14:18
Цитата

Color 1A

Автор: vladd 14.6.2012, 08:39
Тогда, какой участок кода меняет цвет фона консоли?

Автор: SenkraD 14.6.2012, 09:32
а просто методом коментариев или гулением по командам консоли религия не позволяет воспользоваться?

Автор: borisbn 14.6.2012, 10:02
как-то делал для себя кроссплатформенное (Windows/Linux) управление цветом консоли.
Лови: http://clck.ru/d/fUUnjN0X1Ba_l и http://clck.ru/d/MCYrXrbG1BaaR

Добавлено через 2 минуты и 33 секунды
Использование:
Код
ColorCout() << "without color " << ColorCout::Red << "red" << std::endl;


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)