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