嗨我想覆盖特定文件中的内容(对象)我已设置位置但总是添加到文件的末尾
代码
int InputIO::editPatient(int location,Obj P){
int positon=location*sizeof(P);
f.open("File.dat",ios::in|ios::out|ios::app|ios::binary|ios::ate);
f.seekp(0,ios::beg);
f.seekp(positon,ios::cur);
f.write((char*)&P,sizeof(Movie));
f.close();
return 0;
}
答案 0 :(得分:5)
请勿使用ios::app
标志(代表追加)。当您使用此标志时,它会阻止您在打开文件之前读取或写入文件中存在的任何内容 - 您只能添加新内容到最后(并且因为您以读取+写入模式打开,可以重新读取你写的内容并重写它,但你仍然无法获取它之前的数据。)
答案 1 :(得分:1)
刚解决此问题必须删除ios :: app(追加)追加始终添加到文件末尾