所以我有下面这段代码,在我的代码加载了一堆电影到结构数组,现在我知道这个问题是发生在这里 (的strcpy(部分[X]。等级,SP),以及它是什么样子的strcpy的工作不正常,任何人都可以给我一个提示或我可以用它来解决问题的一些有用的东西我已经试过这样做没有strcpy的,但它也不起作用?!复制一个字符串转换成一个结构数组
struct movies
{
char *name;
char *rating;
int time;
float rtwo,rone,rthree;
};
void displayData(movies *);
main()
{
struct movies parts[6];
FILE *fp;
char line[100];
fp=fopen("movies.csv","r");
if (fp == NULL)
{
printf("Could not locate file");
exit(0);
}
char *sp;
int x = 0;
while (fgets(line,100,fp)!=NULL)
{
sp=strtok(line,",");
strcpy(parts[x].name,sp);
sp=strtok(NULL,",");
strcpy(parts[x].rating,sp);
sp=strtok(NULL,",");
sscanf(sp,"%d", &parts[x].time);
sp=strtok(NULL,",");
sscanf(sp,"%f", &parts[x].rone);
sp=strtok(NULL,",");
sscanf(sp,"%f", &parts[x].rtwo);
sp=strtok(NULL,",");
sscanf(sp,"%f", &parts[x].rthree);
++x;
}
fclose(fp);
displayData(parts);
return 0;
}
void displayData(movies *parts)
{
for (int x=0; x < 6 ; ++x)
{
printf("\n Name: %s RATED: %s Time:%d crit: %.1f crit: %.1f crit:
%.0f",parts[x].name,parts[x].rating,parts[x]
.time,parts[x].rone,parts[x].rtwo,pa
rts[x].rthree);
}
}
并且是的,我做过#include和所有其他必要的库。 –
你的结构中没有阵列!指针是**不是**数组! – Olaf
鉴于'parts [x] .name'是一个指针,它指向什么? –