Genereally you do not need to write character codes directly (and most of the time it is a bad idea: what if somebody compiling your program has another character set?).
However sometimes (usually when targetting specific architecture) you might want to send specific control character. Those are not found on keyboard, so you will have to enter them in some other way.
note that a char can also store value between -127 and 127 and an unsigned char takes value between 0 and 255. Something you would rather choose a byte instead of an integer that takes generally 4 bytes. For instance you have an input table , since you takes only 255 values , you only need to define the array size with an unsigned char and an index iterator unsigned char as well...