<分区>
基本上使用 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 来检查不成功的转换, 我正在使用函数
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'
).
关于检查 strtol 不成功的转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25233088/