如何识别是什么类型的错误导致返回值为-1?
前任:
a = sscanf(ptr, "%s",output);
printf("%d",a);
输出:
-1
从文档中:
...and errno shall be set to indicate the error
.
用于perror()
查看错误是什么。通常,errno 仅适用于存在读取错误的情况,不适用于 sscanf。当没有匹配失败或转换时,简单地返回 -1。由于您的 fmt 字符串只是 '%s',我能想到的获得 -1 返回值的唯一原因是 ptr 指向的字符串是否仅包含空格。
ptr
您可以通过检查内容并检查output
是否正确声明来识别错误。典型的错误是ptr
或output
是NULL
。
您不会从中获得更多诊断信息sscanf
。