0

嗨,我正在尝试将文件中的数据读取到结构数组中我尝试使用 fgets 但收到错误消息,说 RECORD 类型无法转换为 char* 这是我到目前为止所拥有的

#include <stdio.h>
#include <stdlib.h>

#define MAX_NAME   20
#define FILE_NAME  50
#define LIST_SIZE 50
//void getData(RECORD name[], RECORD score)


typedef struct RECORD
{
    char *name;
    float  score;
}RECORD;


int main (void)
{
    // Declarations
       FILE *fp;
       char fileName[FILE_NAME];
       RECORD list[LIST_SIZE];
       int count = 0;
    // Statements
       printf("Enter the file name: ");
       gets(fileName);

       fp = fopen(fileName, "r");

       if(fp == NULL)
           printf("Error cannot open the file!\n");
         while (fgets(list[count], LIST_SIZE, fp) != NULL)
         {
             count++;
         }
       return 0;
}

错误发生在while循环内的fgets语句中,我该如何解决这个问题并将数据读入结构数组?

预先感谢

4

2 回答 2

0

fgets 用于从文本文件中以一行为单位输入字符串。

例如)

char input_line_buff[128];
fgets(input_line_buff, 128, fp);

读入

input_line_buff:(内容例如)“名称 66.6\n”

你做 split , memory alloc and copy 和 convert 。

例如)

list[count].name = strdup("name");
list[count].score= atof("66.6");
count++;
于 2013-04-13T09:13:58.953 回答
0

尝试这个,

while(fgets((char *)list[count], SIZE/* data size to be read */, fp) != NULL)
{...}
于 2013-04-13T07:16:29.517 回答