为什么我把文本文件储存到结构体数据中,会一直闪退啊

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct date
{
    int month;
    int day;
    int year;
};
struct student
{
    long int no;
    char name[20];
    struct date birthday;
    float cost;
};
int main()
{
    int i=0,j;
    FILE *fp;
    struct student record[100];
    if((fp=fopen("kc1.txt","r"))==NULL)
    {
        printf("Cannot open file\n");
        exit(1);
    }
    while(!feof(fp))
    {
        fscanf(fp,"%[^,],%[^,],%[^,],%[^,],%[^,],%f",&record[i].no,&record[i].name,&record[i].birthday.month,&record[i].birthday.day,&record[i].birthday.year,&record[i].cost);
        i++;
    }//%[^,]  字符串以,为输出结束标志
    j=i;
    for(i=0;i<j;i++)
        printf("%ld,%s,%d,%d,%d,%f\n",record[i].no,record[i].name,record[i].birthday.month,record[i].birthday.day,record[i].birthday.year,record[i].cost);
    fclose(fp);
    system("pause");
    return 0;
}

kc1.txt的文件内容是什么?