您好我正在尝试将文件中的数据读入我尝试使用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语句中,我该如何解决这个问题并将数据读入结构数组?
提前谢谢
答案 0 :(得分:0)
试试这个,
while(fgets((char *)list[count], SIZE/* data size to be read */, fp) != NULL)
{...}
答案 1 :(得分:0)
fgets用于将文本文件中的字符串作为一个单元输入一行。
e.g。)
char input_line_buff[128];
fgets(input_line_buff, 128, fp);
读入
input_line_buff :(内容例如)“name 66.6 \ n”
你做拆分,内存分配和复制,转换。
e.g。)
list[count].name = strdup("name");
list[count].score= atof("66.6");
count++;