Adding Color to Your Output From C

Download PDF

Adding Color to Your Programs

Adding Color

Adding color to the output of your programs can make them more visually appealing and adding to their aesthetics. Not only this, though, color will make notices or warning more noticeable to your users resulting in better acceptance. In this blog we will see how to can both add color and start making use of additional functions in C, rather than, using just the main function. So when you are ready and sat comfortably in your chair we shall begin.

ANSI Colors


We have 8 ANSI colors that we can use in our output, this can be doubled to 16 if you take into consideration that these colors can be displayed as standard or in bold for highlighting. To be able to access the colors we need to use and escape sequence followed by the correct color code, the print the text and finally reset the colors.

  • printf(“\033[0;31m”); //Set the text to the color red
  • printf(“Hello\n”); //Display Hello in red
  • printf(“\033[0m”); //Resets the text to default color
  • Escape is: \033
  • Color code is: [0;31m

It is important to reset the color to ensuring that the selected color is terminated and text returns to normal. Using the following table you can view some of the code available.

CODECOLOR
[0;31mRed
[1;31mBold Red
[0;32mGreen
[1;32mBold Green
[0;33mYellow
[01;33mBold Yellow
[0;34mBlue
[1;34mBold Blue
[0;35mMagenta
[1;35mBold Magenta
[0;36mCyan
[1;36mBold Cyan
[0mReset

Simple Hello World in Color

Working with a simple hello world program we can begin to understand how to make use of the color. Firstly we will set the color to be red and bold before moving onto using functions to set the color.

#include <stdio.h>
int main () {
  printf("\033[1;31m");
  printf("Hello world\n");
  printf("\033[0m;")
  return 0;
}

17-09-2016-17-39-39

Adding color to the output was really quite simple; however setting many colors or changing the colors many times will be repetitive. Setting the color often and using more than one color is going to be required where we want to highlight the output with information and warnings.

Using Functions

This is where function can help. It is simple to create functions for red, yellow etc. Let’s take a look.

#include <stdio.h>
void red () {
  printf("\033[1;31m");
}

void yellow {
  printf("\033[1;33m");
}

void reset () {
  printf("\033[0m");
}

int main () {
  red();
  printf("Hello ");
  yellow();
  printf("world\n");
  reset;
  return 0;
}

17-09-2016-17-50-40

We can use the newly created functions as many time as we want and it is as simple as yellow(); reset(); or red(); We, of course, can create more functions to support all colors.

Using the functions the way we have we do not need to return any values. The functions result only in printing the ANSI color codes to the terminal. As we do not return any value then we set the output parameter explicitly to void.

Moving On

It is also likely that we can reuse these function in almost any C program that has text output. In another blog we will see how we can reuse this code by creating and referencing our own header files.

The following video steps you through the process of printing in color.