0

freadfwriteを使用してファイルから数値を読み取るにはどうすればよいですかこれは私のコードです

char *buff[1];
int highscore;
FILE *FPtr;
FPtr = fopen("highscore.txt","w+");
if(FPtr != NULL){
    fread(buff,sizeof(buff),1, FPtr);

}
if(buff == NULL){
     fprintf (FPtr, "%d" , 10);
     fclose(FPtr);
}

したがって、ファイルを作成して10をファイルに出力する最初の実行後、ファイルを読み取ってから10を出力します。これを行うにはどうすればよいですか?

4

1 に答える 1

0

intwithを読み取るfread場合、別のポインターを使用したくない場合は、そのアドレスを使用する必要がありますint

int highscore;

fread(&highscore, sizeof(highscore), 1, score_file);

それに合わせて、書き込みを行うときは、次を使用しますfwrite

int highscore;

fwrite(&highscore, sizeof(highscore), 1, score_file);

ただし、ファイルは移植可能ではないことに注意してください。たとえば、あるマシンで書き込んで別のマシンで読み取ろうとすると、まったく正しくない結果が生じる可能性があります。コードを別のオプションで再コンパイルしても、ファイル形式に関するプログラムの暗黙の考え方変わる可能性があります (たとえば、32 ビットから 64 ビットのコンパイルに変更すると、簡単に問題が発生する可能性があります)。

于 2012-04-26T22:16:12.447 に答える