你好,我正在学习 C 语言,但在我读的一本书上出现了一道题目,我有些问题。我的代码如下:
#include<stdio.h>
int main()
{
unsigned char one=0;
unsigned char two=0;
printf("Quantity 1 = ");
scanf("%d",&one);
printf("Quantity 2 = ");
scanf("%d",&two);
printf("The value is %d",one);
return 0;
}
当我尝试查看
one
的值时,为什么出现的是初始值而不是scanf
后的值?
unsigned char
作为变量类型,可以使用%c
或%hhu
格式说明符。 - 0xF1fscanf()
长度修饰符:C11 7.21.6.2 11 "hh表示接下来的d、i、o、u、x、X或n转换说明符适用于带有指向有符号字符或无符号字符的参数。"fprintf()
同理。我希望这个疑问能够减轻。 - chux - Reinstate Monicaunsigned char
,如果您将其视为小整数,请使用%hhu
,因此“42”
会给您(unsigned char(42)
。(顺便说一下,在大多数英语国家,“doubt”并不等同于“question”;“doubt”这个词意味着怀疑。) - Keith Thompson