セーブデータを作成するようにしようと思っています。
こうすることでセーブデータを消したことでランキングとステージクリア数を初期化できるようにしようと思っています。
//攻撃に関する構造体
typedef struct RANKDATA{
char name[7]; //名前
int point; //点数
}RANKDATA;
static RANKDATA Data[10];
static RANKDATA FirstData[10] ={{"NONAME",10000},{"NONAME",9000},{"NONAME",8000},
{"NONAME",7000},{"NONAME",6000},{"NONAME",5000},{"NONAME",4000},
{"NONAME",3000},{"NONAME",2000},{"NONAME",1000}};
const int firstclearnumber = 0;
char name[10][10];
static int buff1,buff3;
static char buff2[10];
static int clearnumber = 0; //クリアしたステージ数
//-------------------------------------
// 関数名: void ReadSaveData()
// 処理: セーブデータの読み込み
//-------------------------------------
void ReadSaveData(){
FILE *fp = fopen(("SaveData.dat"),"rb");
int i = 0;
int j = 0;
if(fp == NULL)
{
FILE *fp = fopen( "SaveData.dat", "wb" );
while(!feof(fp) && !ferror(fp) && j<10)//04
{
if(j==0){
fwrite( &firstclearnumber, sizeof(firstclearnumber), 1, fp );
}else{
fwrite( &FirstData, sizeof(FirstData), 1, fp ); // SaveData_t構造体の中身を出力
}
j++;
}
fclose(fp);
for(int k = 0;k<10;k++){
LoadRank(FirstData[k].point,FirstData[k].name,k);
Data[k].point = 0;
}
}
while(!feof(fp) && !ferror(fp))//04
{
if(i==0){
fread( &clearnumber, sizeof(clearnumber),1,fp);//i=i+1;
}else{
/* csvから、10進整数、文字列、小数を読み込む */
fread( &Data, sizeof(Data),1,fp);
}
i++;
}
fclose(fp);
for(int j = 0;j<10;j++){
LoadRank(Data[j].point,Data[j].name,j);
Data[j].point = 0;
}
}
エラーが出てしまいました。
読み込めなかったときセーブデータを作成するためのいい方法があれば教えてください。