With printf, you specify the output type like this
unsigned char a;
but with cout,
cout << a;
there is no type required. Do you have to cast the variable in order to see a reasonable output
cout << (int)a;
or something like that? How do you know which type to convert to? Ie when I do cout << a; I get some crazy ascii character, but what I wanted to see was a value between 0 and 255.