fwrite(&b,sizeof(int),1,fp); 这句,文件指针只移动了1个字节然后你 fseek(fp,-sizeof(int),SEEK_CUR); 文件指针向后退4个字节所以错了此外,你结束文件操作时,还缺少 fclose(fp);