-3

我想检查变量 from在 C 语言中fgets是否溢出。ling long int我试过这个:

long long x; 
fgets(...)
...
if(x <= LLONG_MAX && x >= LLONG_MIN)

但它不起作用,因为long long int会收到太多的数字;它回到LLONG_MIN+过剩(我认为是这样)。

4

1 回答 1

3

strtoll当您尝试从 char* 转换为 long long 时使用。这些行取自 strtoll 文档(s​​trtoll):

strtol() 函数返回转换的结果,除非该值会下溢或溢出。如果发生下溢,strtol() 返回 LONG_MIN。如果发生溢出,strtol() 返回 LONG_MAX。在这两种情况下,errno 都设置为 ERANGE。strtoll() 也同样适用(使用 LLONG_MIN 和 LLONG_MAX 而不是 LONG_MIN 和 LONG_MAX)。

于 2017-03-06T22:27:08.390 回答