如何将一行除以空格分成两种不同的类型

问题描述 投票:-1回答:1

我在查找用于拆分文件单行的解决方案时遇到了一些麻烦。有一个.txt文件,如下所示:

9999 m 32
9998 f 20 
9997 o 22 
9996 m 18 
9995 o 45 
9994 f 40 
9993 m 76

其中,例如,9994 f 409994是一个int,f是char和40另一个int。

我试图使用fgets()来获取线并将其分开,但我没有找到将线信息分成三个的方法,所以我可以按照需要的方式使用它们。除了fgets()之外还有另一个功能对此更好吗?或者有一种方法可以用fgets()做到这一点?

c file-read
1个回答
1
投票

您可以使用fgets逐行读取文本文件,并使用int从字符串中获取charsscanf值: -

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);
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.