我有点坚持如何使它工作,我需要从用户那里获取 8 个十六进制数字。如果用户输入超过 8 个,我试图只获取前 8 个数字
scanf("%8x", iPtr); //iPtr is an int pointer that's why i don't use &.
如果用户没有0x
在开头输入:它会起作用,但是如果他们输入:0xffffffffffff
iPtr 的结果是:0x00FFFFFF
它会自动在0
s 前面添加 2 F
s...
如果我只使用%x
,它会工作正常,但会得到最后 8 位数字。我想要前 8 位数字...
该8
格式串的装置,以读取来自输入至多8个字符。因此,如果输入是,0xffffffffff
则输入序列0xffffff
与您获得的输出匹配。(我假设您%08x
在 printf 格式字符串中使用,否则您将不会在输出中看到额外的零)。
不幸的是,没有scanf
选项组合意味着“如果以0x
or开头,则读取 10 个字符,否则0X
读取 8 个字符”。您必须自己使用其他输入函数来实现该逻辑。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句