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