2017-02-20 4 views
-1

[Это мой первый пост. пожалуйста, не пожирайте меня]Цвет текста без вывода консоли?

Эй, Peeps!

Я довольно новый (например, всего за несколько часов) на C++

я не узнал какие-либо другие «High» языков, я сделал большинство вещей в Windows, CMD, и довольно известен с его консоль сейчас, но нехватка функций приводит меня в другое место.

Итак, чтобы изучить C++, в настоящее время я использую Sololearn и просто занимаюсь исследованием, просто чтобы сначала перенести некоторые небольшие проекты из пакета, я не хочу использовать GUI или расширения, и я использую CodeBlocks для создания консоли Приложения.

Теперь к моей проблеме;

Я был просто сделать аккуратную функцию для окрашивания текста, и я изменил фрагмент (найденный здесь: Source) в этом здесь:

void colorText(string ct, int col) 
{ 

    HANDLE hConsole; 
    hConsole = GetStdHandle(STD_OUTPUT_HANDLE); 

    FlushConsoleInputBuffer(hConsole); 
    SetConsoleTextAttribute(hConsole, col); 

     cout << ct; 

    SetConsoleTextAttribute(hConsole, 15); //set back to black background and white text 
} 

Что на самом деле работает просто замечательно, называя его

colorText("This my Text",12); 

Для примера. Тх, я получаю уродливые Консольные выходы с ним, который выглядит следующим образом:

CMD.EXE was started with the Path given above as the current Directory. 
UNC-Paths aren't supported. 
The Windows - Directory will be set as current Directory. 

Теперь же есть идея, как избежать любого это, используя другой метод для окрашивания, или приглушения окна консоли? Я также признателен, если кто знает, может быть какое-то место, чтобы узнать C++ немного более профессионально, учебные пособия, сайты ..

Я благодарен за любую помощь,

искренне clragon

+0

Я уверен, что этот вывод не имеет ничего общего с цветами и просто вызван тем, как Code :: Blocks запускает терминал. Оказывается ли это на простом «Hello World» тоже? – Quentin

+0

@Quentin Нет, на самом деле нет. Обычный выход из него - это время выполнения и «нажмите любую клавишу» Функция цвета добавляет те, что были выше, я протестировал это, прокомментировав вызов. – clragon

+0

Если вы хотите учиться, не начинайте с наихудшей возможной IDE для этого. Загрузите [Сообщество Visual Studio] (https://www.visualstudio.com/vs/community/) и возьмите его оттуда. Code :: Blocks имеет плохие значения по умолчанию, тенденцию мешать созданию приложений и в значительной степени неподдерживается. – IInspectable

ответ

0

GetStdHandle вероятно возвращение который несовместим с консолью отладки, которую вы запускаете. Вызов функции один раз при запуске программы и сохранение ручки может работать лучше.

+0

Я просто попробовал Visual Studio ... и ничего себе. Это действительно просто отладчик. У Visual Studio нет проблем с ней, и ошибка не возникает. Спасибо за помощь – clragon

Смежные вопросы