我想检查变量 from在 C 语言中fgets
是否溢出。ling long int
我试过这个:
long long x;
fgets(...)
...
if(x <= LLONG_MAX && x >= LLONG_MIN)
但它不起作用,因为long long int
会收到太多的数字;它回到LLONG_MIN
+过剩(我认为是这样)。
strtoll
当您尝试从 char* 转换为 long long 时使用。这些行取自 strtoll 文档(strtoll):
strtol() 函数返回转换的结果,除非该值会下溢或溢出。如果发生下溢,strtol() 返回 LONG_MIN。如果发生溢出,strtol() 返回 LONG_MAX。在这两种情况下,errno 都设置为 ERANGE。strtoll() 也同样适用(使用 LLONG_MIN 和 LLONG_MAX 而不是 LONG_MIN 和 LONG_MAX)。