在 Linux 中,sscanf
函數(shù)用于從字符串中讀取格式化的輸入
strtok
或 strsep
分割字符串。sscanf
進(jìn)行解析。以下是一個(gè)簡單的示例,展示了如何使用 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;
}
這個(gè)示例中,我們首先使用 strtok
函數(shù)將字符串 text
按換行符 \n
分割成多行。然后,我們遍歷每一行,并使用 sscanf
函數(shù)從每一行中讀取三個(gè)整數(shù)。如果 sscanf
成功讀取了三個(gè)整數(shù),我們將輸出這些整數(shù)的值。否則,我們將輸出一個(gè)錯(cuò)誤消息。