在C中使用"fscanf"如何拆分两个字符串?

Emr*_*ğan 0 c linked-list list scanf strtok

我希望使用文件操作在C中的链表.我想得到一条线并将其拆分并存储在结构中.但我不能分裂两个字符串.

我的文件是这样的:

1#Emre #Dogan
2#John#Smith
3#Ashley #Thomas
等...

我想使用fscanf从文件中读取一行.

fscanf(file,"%d#%s#%s",&number,name,surmane);
Run Code Online (Sandbox Code Playgroud)

但结果是

编号:1
姓名:Emre #Dogan

如何摆脱名称中的#元素并将其拆分为姓名和姓氏;

Ana*_*and 5

#include <stdio.h>
#include <string.h>

int main(void) {

    FILE *fptr;
    fptr = fopen("Input.txt", "r");

    int number;
    char *name;
    char *surname;
    char line_data[1024];

    fgets(line_data, 1024, fptr);

    number = atoi(strtok(line_data, "#"));
    name = strtok(NULL, "#");
    surname = strtok(NULL, "#");    

    printf("%d %s %s", number, name, surname);
}
Run Code Online (Sandbox Code Playgroud)

输出:

1 Emre Dogan
Run Code Online (Sandbox Code Playgroud)

编辑:将变量"number"从字符串转换为整数.