# ofstream and overwriting files

## Recommended Posts

I'm trying to save a file with ofstream, but I only want to overwrite a particular area of it. I open the file, seekp() to the position I want to overwrite and then write() what I want to it. But afterwards instead of doing that, only what I have written to the file is there, with an offset filled with blank before it (which i'm guessing to be the same size as the seekp()). How can I make it keep the rest of the file but overwrite where I want it to?

##### Share on other sites
When opening the file, use an openmode other than the default (which specifies to truncate the file). more info.

##### Share on other sites
Off the top of my head i can think of two ways:

1) Open the file for appending, not for output, then do as you were doing before.
2) Read the file into a string, edit the string and then output the string to the same file.

Dave

##### Share on other sites
Append just makes the file grow.

##### Share on other sites
Open the file for both reading and writing.

ios::in | ios::out | ios::binary

## Create an account

Register a new account

• ## Partner Spotlight

• ### Forum Statistics

• Total Topics
627636
• Total Posts
2978331

• 10
• 12
• 22
• 13
• 33