[英]Converting an int to an unsigned char in C
以前我从来不需要使用无符号字符,但是最近我对它们存储整数的能力感到好奇。 通过一些阅读,我发现隐式完成了从int到unsigned char的转换,但是我也明确添加了转换。 无论哪种方式,下面的代码都无法工作,并且会打印出等效的字母或一个小的空白框。
printf("%s", "Number: ");
int input;
scanf("%d", &input);
unsigned char num = input;
printf("%c%s%d", num, " = ", input);
return (EXIT_SUCCESS);
您正在将数字打印为字符 ( %c
)而不是整数 ( %hhu
)。
在printf
, %c
表示打印其代码为相应参数的字符符号。
要打印数值,请改用%d
。
因为您设置了printf()
以将num的值作为字符"%c"
进行打印,所以它会打印一个字母。 例如,如果使用"%d"
,则可以打印其数值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.