私が取り組んでいるプログラムは、ハイスコア セクションを含むファイル (about.txt) を作成します。
.txt の 12 行目は...
プレーン テキスト (ハイスコアなし):
- with <0>
子:
fprintf(about,"-%s with <%ld>",highname,highscore);
新しいスコアを書き込む前に、ファイルからスコアを読み取り、現在のハイスコアよりも大きいかどうかをテストする必要があります。
私は欲しい...
if(score > highscore)
highscore=score;
唯一の問題は、ファイルからハイスコアを取得する方法です。
私は自分でいくつかの調査を行いましたが、これは私が作成しているよりもはるかに簡単であると確信していますが、周りを見回すと、これを行う方法が見つかりませんでした.
ありがとうございました。/////////////////////////////////編集//////////////// //////// ファイルの作成:
FILE *about;
fpos_t position_name;
fpos_t position_score;
...
fprintf(about,"\n\nHIGHSCORE:\n\n");
fprintf(about,"-");
fgetpos(about,&position_name);
fprintf(about,"%s",highname);
fprintf(about,"with");
fgetpos(about,&position_score);
fprintf(about,"%ld",highscore);
fclose(about);
...
スコアの取得:
FILE *about;
about = fopen("about.txt","r");
fseek(about,position_name,SEEK_SET);
fscanf(about,"%s",highname);
fseek(about,position_score,SEEK_SET);
fscanf(about,"%ld",highscore);
fclose(about);
変数の変更 (注意.. highscore/highname はグローバル変数です)
if(score >= highscore) //alter highscore
{
highscore = score;
highname = name;
puts("NEW HIGHSCORE!!!\n");
}
エラーが発生します:
error: incompatible types when assigning to type 'char[3]' from type 'char'
この行で:
highname = name;
ここで宣言された名前/スコア/ハイネーム/ハイスコア(ヘッダーファイル内):
char name[3];
char highname[3];
long score;
long highscore;