0

私が作成したゲームがあります。ハイスコ​​アを読み込んで保存する機能を実装したい。最初はテキストファイルがないとき(私の場合highscore.txt)、作成したらファイルに0を出力したいと思います。ロード中にある場合は、前回のゲームプレイのハイスコアをロードしたいと思います。これについてどうすればいいですか?

これが私のコードです:

void filewrite(){

    int n;

    FILE *FPtr;
    FPtr = fopen("highscore.txt","w+");//open file
    if (FPtr == NULL){
    fprintf (FPtr, "%d" , highscore);
    rewind(FPtr);
    }
    fscanf(FPtr,"%d",&n);//scan file for integer


    if (n < score){
        if(highscore < score ){
            if(end==true){
                fprintf (FPtr, "%d" , score);//print the score to file if it is higher than the score already there
                rewind(FPtr);//rewind the file, so pointer starts at begining
                fscanf(FPtr,"%d",&highscore);//scan file for int
            }
        }
    }

    fclose(FPtr);//close pointer to file

}

fopen は、すでにファイルにあったものを上書きし、空白のままにしているようです

4

1 に答える 1

0

実行する必要がある手順は次のとおりです。

  • ファイルを読み取り用に開いてみてください。
  • それが失敗した場合は、書き込み用に開き、0 を書き込み、読み取り用に開きます。
  • ファイル内の値を読み取り、必要に応じてテストします。
于 2012-04-29T12:54:15.563 に答える