温馨提示×

linux sscanf 处理多行文本的方法

小樊
83
2024-08-26 22:40:18
栏目: 智能运维

在 Linux 中,sscanf 函数用于从字符串中读取格式化的输入

  1. 使用 strtokstrsep 分割字符串。
  2. 对每一行使用 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 成功读取了三个整数,我们将输出这些整数的值。否则,我们将输出一个错误消息。

0