在C

时间:2016-04-27 00:16:48

标签: c casting unsigned-char

我以前从未需要使用unsigned char,但我最近对它们存储整数的能力感到好奇。通过一些阅读我已经完成了我发现从int到unsigned char的转换是隐式完成的,但我也明确添加了转换。无论哪种方式,下面的代码都不起作用,并打印出等效的字母或小空框。

printf("%s", "Number: ");
int input;
scanf("%d", &input);  
unsigned char num = input;
printf("%c%s%d", num, " = ", input);
return (EXIT_SUCCESS);

3 个答案:

答案 0 :(得分:1)

您正在将该号码打印为字符%c)而不是整数%hhu)。

答案 1 :(得分:1)

printf中,%c表示打印代码为相应参数的字符符号。

要打印数值,请改用%d

答案 2 :(得分:0)

它会打印一个字母,因为您将printf()设置为将num的值打印为"%c"的字符。例如,如果您使用"%d",则可以打印其数值。