gpt4 book ai didi

c - 如何检查用户输入的数字不大于 LLONG_MAX 或 LOWER 不大于 LLONG_MIN?

转载 作者:行者123 更新时间:2023-12-02 15:16:02 24 4
gpt4 key购买 nike

我想检查用户输入的数字是否大于或小于告诉值。

我知道 atoll function但它似乎并没有特别的帮助,基于未定义值的检查看起来不太令人信服。

我也知道我可以检查用户输入的字符串是否全是数字,在这种情况下我可以检查字符串的长度是否大于 LLONG_MAX 的长度或 LLONG_MIN 一旦左边的 0 被删除,或者在两者的长度相同的情况下,我可以逐位检查,如果该数字中输入的数字的值大于LLONG_MAXLLONG_MIN 的值将超出范围。

但我想必须有更好的方法来做到这一点。希望你能给我一些提示,告诉我那条路是什么。

最佳答案

改为使用 strtoll 函数。

如果输入值超出范围,errno 设置为 ERANGELLONG_MINLLONG_MAX 返回,具体取决于值是下溢还是上溢。

来自man page :

The strtol() function returns the result of the conversion, unless the value would underflow or overflow. If an underflow occurs, strtol() returns LONG_MIN. If an overflow occurs, strtol() returns LONG_MAX. In both cases, errno is set to ERANGE. Precisely the same holds for strtoll() (with LLONG_MIN and LLONG_MAX instead of LONG_MIN and LONG_MAX).

关于c - 如何检查用户输入的数字不大于 LLONG_MAX 或 LOWER 不大于 LLONG_MIN?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40406860/

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