Привет, Пипс!
Я довольно новичок (всего несколько часов) в C ++
Я еще не изучал другие «Высокие» языки, я делал большинство вещей в Windows CMD,
и сейчас они довольно известны благодаря своей консоли, но отсутствие функций заставляет меня куда-то еще.
Итак, чтобы изучить C ++, я в настоящее время использую Sololearn и просто исследую, собираюсь сначала портировать несколько небольших проектов из Batch, я пока не хочу использовать графический интерфейс или расширения, и я использую CodeBlocks для создания консольных приложений.
Теперь к моей проблеме;
Я как раз собирался сделать аккуратную функцию для раскраски текста, и я изменил фрагмент (находится здесь: Источник ) в это здесь:
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 ++, учебники, веб-сайты …
Я благодарен за любую помощь,
искренне
GetStdHandle, вероятно, возвращает дескриптор, который несовместим с запущенной вами консолью отладки. Вызов функции один раз при запуске программы и удержание ручки может работать лучше.
Других решений пока нет …