【发布时间】:2019-05-29 06:44:42
【问题描述】:
我需要 strtol 来转换 [0 到 255] 范围内的一些数字 如果 0 也是我需要转换的数字,如何检查 0 的转换?
long conv = strtol(argv, &p, 10);
if (conv == 0)
{
perror("Conversion error");
exit(EXIT_FAILURE);
}
if ((conv >= LONG_MAX || conv <= LONG_MIN) && errno == 34);
{
perror("Invalid Range!");
exit(EXIT_FAILURE);
}
【问题讨论】:
-
天哪,该函数确实使用零作为信号值。那是谁的主意?
-
检查 p 是否与 argv 不同
-
其实我认为零是不能解析字符串的默认返回值。
-
未知,@Ôrel cmets 正确。在
strtol(argv, &p, 10)、if (argv == p) perror("Conversion error");之后
标签: c