从文件中获取数据并将其添加到C

时间:2017-11-12 17:33:41

标签: c list file linked-list fopen

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

struct Friend{
    char name[50];
    char surname[50];
    char gender;
    char date[50];
    struct Friend * next;
};

struct Friend* initialize(char *);

int main(){
    char name[100];
    printf("ENter the name of the file\n")
        gets(name);
    struct Friend * head;
    head=initialze(name);

}

struct Friend * initialize(char *name){
    FILE * ffile;
    ffile=fopen(name,"r");
    if(ffile==NULL)
        exit(1);
}    

这是我在C中的函数初始化。我需要打开一个文件(文件看起来如下所示),并创建一个链接列表,其中包含每个人的NAME,SURNAME,GENDER和DATE OF BIRTH ,并返回链表的(HEAD指针)起始地址。我已经完成了任务,一次取一个字符,有3个嵌套的while循环。但是你可能已经猜到这是一个非常低效的解决方案。

文件的名称并不重要,因为我提示用来编写文件。但这里的文件是如何看待的

  

约翰;莱尼; M; 13/01/1978;

     

约什;布什; M; 15/05/1989;

     

安吉里卡;维; F; 20/10/1990;

所以当你看到我们在每个元素后面都有一个分号(;)

1 个答案:

答案 0 :(得分:0)

我会接近这个有点不同。 您可以将整个文件读取到缓冲区或读取并在每次遇到“\ n”后存储 然后你必须有一个方法来创建一个具有所需结构的节点,并从你刚读过的当前行中填入数据。

例如:

void create(Friend* Head)
{
  struct Friend *new_node = malloc(sizeof(Friend));

  new_node->whatever = whatever;

  Head->Next = new_node;

}