gpt4 book ai didi

c - 如果用户输入 0x,带有 %8x 的 scanf 自动在开头添加 00?

转载 作者:行者123 更新时间:2023-11-30 18:46:58 28 4
gpt4 key购买 nike

我有点不知道如何让它工作,我需要从用户那里获取 8 个十六进制数字。如果用户使用

输入超过 8 个数字,我会尝试仅获取前 8 位数字
scanf("%8x", iPtr); //iPtr is an int pointer that's why i don't use &.

如果用户在开头不输入:0x,但如果输入:0xffffffffffff,则有效iPtr 的结果是:0x00FFFFFF它会自动在 F 前面添加 2 个 0...

如果我只使用%x,它会正常工作,但会获取最后 8 位数字。我想要前 8 位数字...

最佳答案

格式字符串中的8表示最多从输入中读取8个字符。因此,如果输入为 0xffffffffff,则输入序列为 0xffffff,它与您得到的输出相匹配。 (我假设您在 printf 格式字符串中使用了 %08x,否则您将不会在输出中看到额外的零)。

不幸的是,没有 scanf 选项的组合意味着“如果以 0x0X 开头,则读取 10 个字符,否则读取 8 个字符”。您必须使用其他输入函数自己实现该逻辑。

关于c - 如果用户输入 0x,带有 %8x 的 scanf 自动在开头添加 00?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49850319/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com