This question already has answers here:
Closed 5 years ago.
strtol using errno
(4个答案)
基本上是用strtol检查不成功的转换,
我正在使用函数
width = (int)  strtol(argv[2], NULL, 10);
if (errno != 0) {
    printf("Please parse integer argument");
}

使用errno.h
当参数是字符时,它起作用,即:argv[2]=e,6,etic
但当提供444r或33f(前导数字后跟字符)这样的参数时,这无法捕获错误?我有什么遗漏吗?

最佳答案

您可以使用第二个参数strtol()来接收指向数字后面第一个字符的指针,并检查该字符是否为NUL(即'\0')。

关于c - 检查strtol转换失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25233088/

10-11 21:14