我试图使用这段代码读取 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;
}
正如预期的那样,我遇到了以下编译器警告:
warning: format ‘%u’ expects type ‘unsigned int *’, but argument 2 has type ‘unsigned char *’
这是我运行此程序的输出。
Please enter a number between 0 and 255 45 The value is 45 Segmentation fault
我在运行此代码时遇到了分段错误。
使用 scanf
读取 unsigned char
值的最佳方法是什么?
%hhu
是用于unsigned char
数据类型的。 - Joe