下面我自己写了一个,但有个错误,说32行的fp使用没有初始化,不会了啊,而且不知道改完能不能正确运行出来,求大佬帮我看看。
#include<stdio.h>
#include<stdlib.h>
#define size 8
struct Yi
{
int no;
char name[3];
char xiang[50];
}Y[8]={{1,"乾","天行健,君子以自强不息"},{29,"坎","水洊至,习坎。君子以常德行习教事"},{52,"艮","兼山,艮。君子以思不出其位"},{51,"震","洊雷,震。君子以恐惧修省"},{57,"巽","随风,巽。君子以申命行事"},{30,"离","明两做,离。大人以继明照四方"},{2,"坤","地势坤,君子以厚德载物"},{58,"兑","丽泽兑,君子以朋友讲习"}};
void save()
{
FILE *fp;
int i;
if((fp=fopen("sign.txt","w+"))==NULL)
{
printf("不能打开文件\n");
return;
}
for(i=0;i<size;i++)
{
if(fwrite(&Y[i],sizeof(struct Yi),1,fp)!=1)
printf("文件写入错误\n");
fclose(fp);
}
}
int main()
{
FILE *fp;
int i;
for(i=0;i<size;i++)
{
fwrite(&Y[i],sizeof(struct Yi),1,fp);
}
save();
for(i=0;i<size;i++)
{
fread(&Y[i],sizeof(struct Yi),1,fp);
printf("卦序:%d\n卦名:%s\n卦象:%s\n\n",Y[i].no,Y[i].name,Y[i].xiang);
}
fclose(fp);
return 0;
}