Exercise 3-16 (Colors enumeration in C/C++)

Chapter_3     Exercise_3-15     Enum Union     Exercise_3-17







Exercise 3-16     TCP1, p. 228


Exercise 3-16. Create a program that uses an enumeration of colors. Create a variable of this enum type and print out all the numbers that correspond with the color names, using a for() loop.




CONTENTS:     colors.c     Colors.cpp




colors.c         download


#include <stdio.h> // for printf(), putchar()

typedef enum Colors // type `enum Colors' defined in C
{
white, yellow, green, blue, orange, red, brown, black // 0, 1, ..., 7
} Colors; // type `Colors' defined in C

void printColor(enum Colors);
void printColor(Colors);

int main()
{
enum Colors color; // Colors color;
for (color = white; color <= black; color++)
{printColor(color);}
printColor(color);
putchar('\n');

int col;
for (col = white; col <= black; col++)
{printColor(col);}
printColor(col);

return 0;
}

void printColor(Colors color)
{
switch(color)
{
case white:
printf("white: %d\n", color);
break;
case yellow:
printf("yellow: %d\n", color);
break;
case green:
printf("green: %d\n", color);
break;
case blue:
printf("blue: %d\n", color);
break;
case orange:
printf("orange: %d\n", color);
break;
case red:
printf("red: %d\n", color);
break;
case brown:
printf("brown: %d\n", color);
break;
case black:
printf("black: %d\n", color);
break;
default:
printf("unknown color: %d\n", color);
break;
}
}
/*
gcc colors.c -o colors
./colors
white: 0
yellow: 1
green: 2
blue: 3
orange: 4
red: 5
brown: 6
black: 7
unknown color: 8

white: 0
yellow: 1
green: 2
blue: 3
orange: 4
red: 5
brown: 6
black: 7
unknown color: 8
*/











Colors.cpp         download


#include <iostream>
using std::cout;
using std::endl;

enum Colors // types `Colors', `enum Colors' defined in C++
{
white, yellow, green, blue, orange, red, brown, black // 0, 1, ..., 7
};

void printColor(enum Colors);
void printColor(Colors);

int main()
{
enum Colors color; // Colors color;
for (color = white; color <= black; color = Colors(color+1))
{printColor(color);}
printColor(color);
cout << endl;

int col;
for (col = white; col <= black; col++)
{printColor(Colors(col));} // int to Colors
printColor(Colors(col));

return 0;
}

void printColor(Colors color)
{
switch(color)
{
case white:
cout << "white: " << color << endl;
break;
case yellow:
cout << "yellow: " << color << endl;
break;
case green:
cout << "green: " << color << endl;
break;
case blue:
cout << "blue: " << color << endl;
break;
case orange:
cout << "orange: " << color << endl;
break;
case red:
cout << "red: " << color << endl;
break;
case brown:
cout << "brown: " << color << endl;
break;
case black:
cout << "black: " << color << endl;
break;
default:
cout << "unknown color: " << color << endl;
break;
}
}
/*
g++ Colors.cpp -o Colors
./Colors
white: 0
yellow: 1
green: 2
blue: 3
orange: 4
red: 5
brown: 6
black: 7
unknown color: 8

white: 0
yellow: 1
green: 2
blue: 3
orange: 4
red: 5
brown: 6
black: 7
unknown color: 8
*/





Note:  See also enum_iterator on StackOverflow.









Chapter_3     Exercise_3-15     Enum BACK_TO_TOP Union     Exercise_3-17



Comments

Popular posts from this blog

Contents