检查长时间的溢出长



我想从 fgets检查变量并不会以C语言溢出ling long int。我尝试了:

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

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

尝试从char*转换为长时间时使用strtoll。这些行取自Strtoll文档(Strtoll):

strtol()函数返回转换的结果,除非该值会下流或溢出。如果发生底流量,则strtol()返回long_min。如果发生溢出,则strtol()返回long_max。在这两种情况下,Errno都设置为Erange。完全相同的是strtoll()(使用llong_min和llong_max而不是long_min和long_max)。

相关内容

  • 没有找到相关文章

最新更新