gpt4 book ai didi

c - scanf() 如何检查输入是整数还是字符?

转载 作者:太空狗 更新时间:2023-10-29 14:56:44 28 4
gpt4 key购买 nike

我想知道当我们调用 scanf("%d",&var) 而字符本身只是一个数字时,标准 C 库函数 scanf() 如何检查输入是整数还是字符?我知道当遇到非整数时,它会将其放回输入缓冲区并返回 -1,但它如何知道输入不是整数?

最佳答案

您是正确的,每个字符实际上都表示为一个 8 位整数。解决办法很简单:看那个数字,看它是否在 48-57 范围内,也就是字符 '0' - '9' 的 SCII 码范围。

scanf() 的第 1315 行开始 source code我们可以在行动中看到这一点。 scanf() 实际上更复杂,不过它还会查看多字节字符以确定数值。 1740 行是魔法发生的地方,这个字符实际上被转换成了一个数字。最后,这可能是最有用的 strtol()函数执行循环以执行该转换。

关于c - scanf() 如何检查输入是整数还是字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5629484/

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