Я пытаюсь изменить цвет текста в С++, единственный ответ, который я могу найти, - для C, а не для C++. Я пробовал использовать conio.h, но не понимаю, как его использовать. Может ли кто-нибудь помочь с этим?
С++ Изменение цвета текста
Ответы (3)
Раскрашивание текста на самом деле не на стороне С++. В некоторых терминалах Unix вы можете просто использовать такие коды, как \e[0;31m message \e[0m
, непосредственно в своей программе (хотя вы можете захотеть создать API для простоты использования). Однако это не сработает в консоли Windows. Это зависит от ОС и используемого терминала.
Если вам не нужно придерживаться не кроссплатформенной библиотеки conio.h
. Я рекомендую использовать кросс-платформенное решение: только заголовок, библиотеку moderc C++ rang
. Я использую его в большинстве своих проектов, он действительно прост в использовании.
Я узнал, как изменить цвет текста с помощью windows.h. Вот пример кода, который я использовал (скопирован с https://cboard.cprogramming.com/) .
#include <iostream>
#include <windows.h>
using namespace std;
int main()
{
HANDLE h = GetStdHandle(STD_OUTPUT_HANDLE); // h is your link to the console
SetConsoleTextAttribute(h, 1); cout << "Sentence in blue" << '\n'; // 1 happens to be blue
SetConsoleTextAttribute(h, 2); cout << "Sentence in green" << '\n'; // 2 is green
SetConsoleTextAttribute(h, 4); cout << "Sentence in red" << '\n'; // 4 is red
SetConsoleTextAttribute(h, 7); cout << "Sentence in white" << '\n'; // etc.
}
textColor()
, но вы не можете признать, что он всегда здесь - person thibsc   schedule 31.08.2020conio.h
. Не используйте непереносимые нестандартные заголовки (особенно из эпохи DOS:)
- person David C. Rankin   schedule 31.08.2020