2010-10-24 6 views
1

Привет я хочу, чтобы перезаписать содержимое (объект) в конкретном файле я установить позицию, но она всегда добавить в конец файлаперезапись данных в файл C++ с использованием fstream

Код

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; 



     } 

ответ

1

Просто решить эту проблему нужно удалить ИОС :: приложение (Append) Append всегда добавить в конец файла

5

не используйте ios::app флаг (который обозначает добавить). Когда вы используете этот флаг, он запрещает вам читать или записывать любой контент, присутствовавший в файле перед его открытием, - вы можете добавлять только новый контент до конца (и, поскольку вы открыли в режиме чтения и записи, вы может перечитать то, что вы написали, и переписать его, но вы до сих пор не можете добраться до данных).

Смежные вопросы