我以前从未需要使用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);
答案 0 :(得分:1)
您正在将该号码打印为字符(%c
)而不是整数(%hhu
)。
答案 1 :(得分:1)
在printf
中,%c
表示打印代码为相应参数的字符符号。
要打印数值,请改用%d
。
答案 2 :(得分:0)
它会打印一个字母,因为您将printf()
设置为将num的值打印为"%c"
的字符。例如,如果您使用"%d"
,则可以打印其数值。