2. sscanf的高级用法
时间: 2024-08-13 08:06:42 浏览: 33
`sscanf`是C语言中的一个标准库函数,用于从输入流中按照格式字符串解析指定数量的字段。它的高级用法通常涉及复杂的数据结构解析、错误处理和格式化控制。
1. **解析结构体**: 可以用来解析格式化的输入到自定义结构体中,如[^4]:
```c
#include <stdio.h>
struct Person {
char name[50];
int age;
};
int main() {
struct Person p;
if (sscanf("John Doe, 30", "%s, %d", p.name, &p.age) == 2) {
printf("Name: %s, Age: %d\n", p.name, p.age);
} else {
printf("Invalid input.\n");
}
return 0;
}
```
2. **错误处理**: `sscanf`返回成功匹配的字段数,可以用于检查解析是否成功[^4]:
```c
char input[] = "123.45 67.89";
float f1, f2;
if (2 != sscanf(input, "%f %f", &f1, &f2)) {
printf("Failed to parse numbers.\n");
} else {
printf("Parsed: %.2f and %.2f\n", f1, f2);
}
```
3. **宽度和精度控制**: 通过格式字符串中的修饰符(如`%*`用于跳过字段)控制输入的处理[^4]:
```c
char input[] = "123456";
int num;
if (1 == sscanf(input, "%*d %d", &num)) {
printf("Parsed number: %d\n", num); // 去掉了前导的数字
}
```