检查 strtol 不成功的转换

标签 c parsing

<分区>

基本上使用 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/

相关文章:

c - 尝试编译讲师的程序时出错(定义行中预期的符号)

c - 快速问题,为什么 scanf_s 在运行时抛出异常?我很困扰

c - 图像处理基础知识

c - libuv - `uv_kill` 和 `uv_process_kill` 有什么区别?

c# - 为重复行的特定实例解析定界数据

python - 从网站解析——源代码不包含我需要的信息

parsing - 在haskell中快速解析大型utf-8文本文件

c - 如何在代码中应用填充?

xml - 在unix中解析xml文件

python - Python 中通过随机化减少文本文件