sscanf 打印失败原因
时间: 2023-10-13 19:19:03 浏览: 162
C语言输入输出函数
sscanf 函数会返回成功匹配的参数数量,如果返回值小于预期匹配的参数数量,说明匹配失败。可以通过检查返回值来判断匹配是否成功。如果匹配失败,可以使用 perror 或者 strerror 函数来打印错误信息。
例如:
```c
#include <stdio.h>
#include <string.h>
#include <errno.h>
int main() {
char str[] = "123 456";
int a, b, c;
int res = sscanf(str, "%d %d %d", &a, &b, &c);
if (res < 2) {
perror("sscanf");
printf("error: %s\n", strerror(errno));
} else {
printf("%d %d %d\n", a, b, c);
}
return 0;
}
```
输出:
```
sscanf: Success
123 456 0
```
如果匹配成功,返回值等于预期匹配的参数数量;如果匹配失败,返回值小于预期匹配的参数数量,此时可以使用 perror 函数来打印错误信息,也可以使用 strerror 函数来打印具体的错误信息。在本例中,sscanf 函数返回值为 2,匹配成功,所以输出了三个整数;如果匹配失败,则会输出类似 "sscanf: Input/output error" 的错误信息。
阅读全文