如何拆分单行,除以 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 409994 是一个整数,f 是一个字符,40 是另一个整数。

我试图使用 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 %d\n", a,c,b);
    }
}