-2

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

前任:

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

输出:

-1
4

2 回答 2

3

从文档中:

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

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

于 2012-05-18T13:42:30.310 回答
1

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

您不会从中获得更多诊断信息sscanf

于 2012-05-18T13:42:35.720 回答