【发布时间】:2012-12-18 06:13:41
【问题描述】:
我正在尝试使用此代码读取 0 到 255 (unsigned char) 之间的值。
#include<stdio.h>
int main(void)
{
unsigned char value;
/* To read the numbers between 0 to 255 */
printf("Please enter a number between 0 and 255 \n");
scanf("%u",&value);
printf("The value is %u \n",value);
return 0;
}
我确实按预期收到了以下编译器警告。
警告:格式“%u”需要类型“unsigned int *”,但参数 2 的类型为“unsigned char *”这是我对这个程序的输出。
请输入 0 到 255 之间的数字 45 值为 45 分段故障我在运行此代码时确实遇到了分段错误。
使用scanf 读取unsigned char 值的最佳方法是什么?
【问题讨论】:
-
其实
%hhu为unsigned char。 -
@TJD。我不想读一个字符。我想读取 0 到 255 之间的值。
-
@乔。那效果很好。非常感谢。
-
user1293997:您可能想写一个答案并接受它(假设@Joe 对此不感兴趣)。目前唯一的答案是完全不正确的。