Как разделить одну строку, разделенную пробелом, на два разных типа - PullRequest
0 голосов
/ 23 апреля 2019

У меня возникли проблемы с поиском решения для разбиения файла одной строкой в ​​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()?

1 Ответ

1 голос
/ 23 апреля 2019

Вы можете читать текстовый файл построчно, используя 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);
    }
}
...