简单的文件读写,存入的数据与第二次读取的数据不一致,如何解决?

问题相关代码

数据写入的代码:


    fp1=fopen("record","ab+"); 
    rewind(fp1);
    //fseek(fp,0,0);
    //fprintf(fp1,"%d",i);
    fputc(i,fp);
    fclose(fp1);

数据读取的代码:

fp1=fopen("record","rb");
last=fgetc(fp1);
fclose(fp1);
运行结果及报错内容

只有第一次输入的数据在第二可以成功读取,在之后我通过用与数据写入一致的代码更新该数据,在之后的读取却似乎更新失败一样,读取的永远是第一次的数据;如果描述不够完整可以提问,求解答!

我的解答思路和尝试过的方法

我尝试过用fprintf更新数据,但造成的是更大的问题.

我想要达到的结果

成功更新数据

数据写入和读取是合在一个程序里运行的吗?

跟你用文件的打开方式相关吧,“ab+”以附加方式读写打开一个二进制文件,若文件不存在,则会建立该文件,如果文件存在,写入的数据会被加到文件尾后,即文件原先的内容会被保留。