扫描一个大十六进制值

问题描述 投票:1回答:1

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

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

这是我的代码-

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

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

地址:0x0000ffffffff

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

c hex scanf
1个回答
4
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.