我在查找用于拆分文件单行的解决方案时遇到了一些麻烦。有一个.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
是一个int,f
是char和40
另一个int。
我试图使用fgets()
来获取线并将其分开,但我没有找到将线信息分成三个的方法,所以我可以按照需要的方式使用它们。除了fgets()
之外还有另一个功能对此更好吗?或者有一种方法可以用fgets()
做到这一点?
您可以使用fgets
逐行读取文本文件,并使用int
从字符串中获取char
和sscanf
值: -
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);
}
}