如何在C中访问结构的元素?

时间:2017-08-12 13:19:43

标签: c struct

我的代码中有一个结构。 结构的结构是:

struct student{
    int Id;
    char Name[30];
    char Subject[30];
};

我想阅读包含这些信息的文本文件,并希望将这些信息添加到此结构的数组中。

以下是我的文本文件的结构/内容:

1/usman/phd
2/usman/mphill
1/usman/abc

这是我的代码,用于从文本文件中检索值并将其保存到struct数组中,然后打印值:

void loadStudentData(){
   FILE *fp;
   char buff[255];
   char line[50];
   struct student studentList[20];
   int itemIndex = 0;
   fp = fopen("student.txt", "r");
   while(fgets(line, sizeof line, fp)!=NULL) {
        struct student studentObject;
        int i = 0;
        char *p = strtok (line, "/");
        char *array[3];
        while (p != NULL)
        {
            array[i++] = p;
            p = strtok (NULL, "/");
        }
        printf("\n");
            for (i = 0; i <= 2; ++i){
                if(i == 0)
                    studentObject.Id =  atoi (array[i]);
                if(i == 1)
                    strcpy(studentObject.Name ,array[i]);
                if(i == 2)
                    strcpy(studentObject.Subject, array[i]);
                   // printf("%s", array[i]);
            }
            studentList[itemIndex] = studentObject;
            itemIndex = itemIndex+1;
   }
   fclose(fp);

   for(int x=0; x<= sizeof(studentList); x++){
    printf("%s", studentList[x].Name);
   }
}

但此代码无效。任何人都可以帮我解决这个问题吗?

0 个答案:

没有答案