This question already has answers here:
Closed 5 years ago.
strtol using errno
(4个答案)
基本上是用strtol检查不成功的转换,
我正在使用函数
使用
当参数是字符时,它起作用,即:argv[2]=e,6,etic
但当提供444r或33f(前导数字后跟字符)这样的参数时,这无法捕获错误?我有什么遗漏吗?
(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