我尝试使用scanf从用户那里获取一个大的十六进制数字(12个字符)时遇到问题。
它似乎只获得最后的8个字符,例如-ABFFFFFFFF将变为0000FFFFFFFF。
这是我的代码-
unsigned long long address;
scanf("%x",&address);
printf("Address: %#014x", address);
对于此输入:“ ABFFFFFFFF”,输出将是:
地址:0x0000ffffffff
我尝试过用scanf格式播放,但无济于事。
scanf格式和printf都必须使用“%llx”。有关更多详细信息,请参见手册页。