C语言 如何将按空格划分的单行拆分为两种不同的类型



我在寻找在 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 409994 是一个 int,f 个字符并40另一个 int。

我试图使用fgets()来获取行并在之后将其分开,但我没有找到将行信息一分为三的方法,以便我可以根据需要使用它们。除了fgets()之外,还有其他功能更适合此?或者有一种方法可以用fgets()做到这一点?

您可以使用

fgets逐行读取文本文件,并使用sscanf从字符串中获取intchar值:-

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 %dn", a,c,b);
    }
}

最新更新