scanf一个大的十六进制值

时间:2015-05-31 19:40:39

标签: c hex scanf

我有一个问题,试图使用scanf从用户那里获得一个大的十六进制数(12个字符)。

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

这是我的代码 -

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

对于此输入:“ABFFFFFFFF”输出将是:

  

地址:0x0000ffffffff

我尝试过使用scanf格式,但无济于事。

谢谢。

1 个答案:

答案 0 :(得分:4)

你必须使用"%llx"对于scanf格式和printf。有关其他详细信息,请参见手册页。