如何拆分单行,除以 space,分成两种不同的类型
How to split a single line, divided by space, into two differente types
我在找到用 c 语言拆分文件单行的解决方案时遇到了一些麻烦。
有一个这样的 .txt 文件:
9999 m 32
9998 f 20
9997 o 22
9996 m 18
9995 o 45
9994 f 40
9993 m 76
其中,例如,9994 f 40
,9994
是一个整数,f
是一个字符,40
是另一个整数。
我试图使用 fgets()
获取线路并在之后将其分开,但我没有找到将线路信息一分为三的方法,因此我可以按照需要的方式使用它们。
除了 fgets()
之外,还有另一个功能更适合这个吗?或者有一种方法可以使用 fgets()
?
您可以使用 fgets
逐行读取文本文件,并使用 sscanf
从字符串中获取 int
和 char
值:-
char line[30]; // read line by line input from file in this
int a,b;
char c;
while(fgets(line, 30, file) != NULL){ // file is your file pointer
if(sscanf(line, "%d %c %d", &a, &c, &b) == 3){
printf("%d %c %d\n", a,c,b);
}
}
我在找到用 c 语言拆分文件单行的解决方案时遇到了一些麻烦。 有一个这样的 .txt 文件:
9999 m 32
9998 f 20
9997 o 22
9996 m 18
9995 o 45
9994 f 40
9993 m 76
其中,例如,9994 f 40
,9994
是一个整数,f
是一个字符,40
是另一个整数。
我试图使用 fgets()
获取线路并在之后将其分开,但我没有找到将线路信息一分为三的方法,因此我可以按照需要的方式使用它们。
除了 fgets()
之外,还有另一个功能更适合这个吗?或者有一种方法可以使用 fgets()
?
您可以使用 fgets
逐行读取文本文件,并使用 sscanf
从字符串中获取 int
和 char
值:-
char line[30]; // read line by line input from file in this
int a,b;
char c;
while(fgets(line, 30, file) != NULL){ // file is your file pointer
if(sscanf(line, "%d %c %d", &a, &c, &b) == 3){
printf("%d %c %d\n", a,c,b);
}
}