scanf一个大的十六进制值

Din*_*ari 1 c hex scanf

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

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

这是我的代码-

unsigned long long address;
scanf("%x",&address);
printf("Address: %#014x", address);
Run Code Online (Sandbox Code Playgroud)

对于此输入:“ ABFFFFFFFF”,输出为:

地址:0x0000ffffffff

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

Gil*_*ton 5

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