which is sort of what I expected as c, uc and sc are type char and so are displayed as chars. I also get a bunch of warnings about conversion from int to char and possible loss of data.
If you want the display to be as a number rather than a char, then you need to display as type int/unsigned int as required.
By changing print() to:
1 2
void print(int t) { std::cout << t << ' '; }
I get:
128 -128 128 -128
128 -128 128 -128
With both lines the same as L8 and L15 do the same.