如何使用fread fwrite从文件中读取数字 这是我的代码
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 我该怎么做呢?
答案 0 :(得分:0)
如果你打算用int
阅读fread
,你不想使用单独的指针,你想使用int
的地址:
int highscore;
fread(&highscore, sizeof(highscore), 1, score_file);
为了与之匹配,当您进行写作时,您希望使用fwrite
:
int highscore;
fwrite(&highscore, sizeof(highscore), 1, score_file);
然而,请注意,该文件不可移植 - 尝试(例如)将其写在一台机器上并在另一台机器上读取它可能会产生非常不正确的结果。即使用不同的选项重新编译代码也可以改变程序对文件格式的隐含思想(例如,从32位更改为64位编译可能很容易破坏)。