C - 返回值错误

时间:2012-05-18 13:37:17

标签: c

如何识别导致返回值为-1的错误类型?

例如:

a = sscanf(ptr, "%s",output);
printf("%d",a);

输出:

-1

2 个答案:

答案 0 :(得分:3)

来自文档:

...and errno shall be set to indicate the error

使用perror()查看错误。通常,errno仅在存在读取错误时才适用,这不适用于sscanf。当没有匹配失败或转换时,只返回-1。由于你的fmt字符串只是'%s',我能想到获得-1返回值的唯一原因是ptr指向的字符串只包含空格。

答案 1 :(得分:1)

您可以通过检查ptr的内容并检查output是否已正确声明来识别错误。典型错误为ptroutputNULL

您不会再从sscanf获取诊断信息。