小编P3d*_*h77的帖子

将fscanf传递给struct

我正在尝试打开一个文件并传递给struct我,我正在使用fscanf()循环,但它只保存struct最后一次读取:

想象一个文件:

JR John Rambo 24353432 
JL John Lennon 6435463
Run Code Online (Sandbox Code Playgroud)

我正在使用此代码:

typedef struct people{
    char code[10];
    char name[100];
    long telephone;
}PEOPLE;

int read(PEOPLE people[], int n_p){
    char temp;
    FILE *fp;
    fp=fopen("example.txt","r");
    if(fp==NULL){
        printf("Error\n");
        return -1;
    }
    while(!feof(fp)){
        fscanf(fp,"%s %s %s %d\n", people[n_p].code,people[n_p].name,
               &people[n_p].telephone);
    }
}
Run Code Online (Sandbox Code Playgroud)

问题是他只保存文件的最后一行......我应该做一个if cicle吗?

另一个问题是我如何分隔一个类似的文件,但用";"

c

1
推荐指数
1
解决办法
1万
查看次数

标签 统计

c ×1