64,654
社区成员
发帖
与我相关
我的任务
分享
FILE *fp=fopen("D:\\aa.dat","ab+");//ab+ 只能添加 不能修改数据
"wb+" // 会删除原有所有数据 "rb+" 不能新建文件
FILE *fp=fopen("D:\\aa.dat","ab+");
if(fp!=NULL)
{
fseek(fp,0,0);
fread(&Ihead,sizeof(head),1,fp);
//Ihead.name 获取出来是aaaaa
Ihead.name="bbbbb";
fwrite(&Ihead,sizeof(head),1,fp);
fclose(fp);
}
重新打开获取,Ihead.name 还是aaaaa? 怎么办啊[/quote]
你的 Ihead.name 是什么? 如果是 char* 或 std::string, 你那样写入不对呀,
如果是 char name[100]; 这种数组, 你怎么可以这样 Ihead.name="bbbbb"; 赋值的?
另外, read 后指向的位置又变了, wrtie 之前重新 fseekFILE *fp=fopen("D:\\aa.dat","ab+");
if(fp!=NULL)
{
fseek(fp,0,0);
fread(&Ihead,sizeof(head),1,fp);
//Ihead.name 获取出来是aaaaa
Ihead.name="bbbbb";
fwrite(&Ihead,sizeof(head),1,fp);
fclose(fp);
}
重新打开获取,Ihead.name 还是aaaaa? 怎么办啊