我想知道为什么下面的代码不能按我的预期工作:
unsigned char c=0,d=0;
char str[]="0102";
int result=sscanf(str,"%2hhx%2hhx",&c,&d);
我期望 c=1 和 d=2,但实际上 c=0 和 d=2。为什么?
它确实设置了 c=1 和 d=2 cpp.sh 上的代码
#include <stdio.h>
int main ()
{
unsigned char c=0,d=0;
char str[]="0102";
int result=sscanf(str,"%2hhx%2hhx",&c,&d);
printf ("c=%d d=%d\n",c,d);
}
输出:
c=1 d=2