How do I print coloured characters to a Linux terminal that supports it? I'm using C++ for this program, but I think that might be irrelevant.
EDIT: And secondly, how do I tell if it supports colour codes?
You need to output ANSI colour codes. Note that not all terminals support this; if colour sequences are not supported, garbage will show up.
cout << "\033[1;31mbold red text\033[0m\n";
\033 is the ESC character, ASCII 27. It is followed by
[, then one or two numbers separated by
;, and finally the letter
m. See the table on Wikipedia for the meaning of the numbers.
Edit: To determine whether your terminal supports colour sequences, read the value of the
TERM environment variable. It should specify the particular terminal type used (e.g.
screen, ...). Then look that up in the terminfo database; check the