在 Linux 中,sscanf
函数用于从字符串中读取格式化的输入
strtok
或 strsep
分割字符串。sscanf
进行解析。以下是一个简单的示例,展示了如何使用 sscanf
处理多行文本:
#include<stdio.h>
#include<string.h>
int main() {
char text[] = "1 2 3\n4 5 6\n7 8 9";
char *line = strtok(text, "\n");
while (line != NULL) {
int a, b, c;
int result = sscanf(line, "%d %d %d", &a, &b, &c);
if (result == 3) {
printf("Line: %s -> a: %d, b: %d, c: %d\n", line, a, b, c);
} else {
printf("Error parsing line: %s\n", line);
}
line = strtok(NULL, "\n");
}
return 0;
}
这个示例中,我们首先使用 strtok
函数将字符串 text
按换行符 \n
分割成多行。然后,我们遍历每一行,并使用 sscanf
函数从每一行中读取三个整数。如果 sscanf
成功读取了三个整数,我们将输出这些整数的值。否则,我们将输出一个错误消息。