gpt4 book ai didi

c - 确定 *char < INT_MAX

转载 作者:太空宇宙 更新时间:2023-11-04 02:39:45 25 4
gpt4 key购买 nike

我得到了这段代码:

char a[151];
scanf ("%150s", a);

a可能是一个数字,如果是这样,我需要确定,如果 a < INT_MAX .我不知道,该怎么做,因为在 a 的每个索引中char 可以是一个数字,它表示 150 位数字,如果我将一个值存储到某个 int 或其他任何东西中,可能会导致溢出。有什么建议吗?

最佳答案

调用strtol()并测试errno

If the correct value is outside the range of representable values, LONG_MIN, LONG_MAX, ... the value of the macro ERANGE is stored in errno. C11dr §7.22.1.4 8

char a[151];
scanf ("%150s", a);
char *endptr;
errno = 0;
long num = strtol(a, &endptr, 10);
if (errno == ERANGE) Overflow(); // outside `long` range
if (num > INT_MAX) Overflow(); // greater than `INT_MAX`

关于c - 确定 *char < INT_MAX,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33330067/

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