扫描一个大的十六进制值

scanf a big hexadecimal value

我在尝试使用 scanf 从用户那里获取一个大的十六进制数字(12 个字符)时遇到问题。

它似乎只得到最后 8 个字符,例如 - ABFFFFFFFF 将变为 0000FFFFFFFF。

这是我的代码 -

unsigned long long address;
scanf("%x",&address);
printf("Address: %#014x", address);

对于此输入:"ABFFFFFFFF" 输出将是:

Address: 0x0000ffffffff

我试过玩一下scanf格式,但没用。

scanf 格式和 printf 都必须使用“%llx”。有关更多详细信息,请参阅手册页。