First let's assure, that I understand what you want to do: You want to open an existing file, append some data, then go back to the position where you started to append and write some other data at that position; was that correct so far? If yes, then you first have to know, that you cannot insert new data into the middle of a file, but only overwrite existing data. Here I wrote an example that will do so:
#include
<
fstream
>
using namespace std;
int main() ... {
const char* filename = "test.txt";
//just build a little sample file
ofstream sampleFile(filename);
sampleFile << "This is a sample content ";
sampleFile.close();
//declare a new file object for appending and "overwriting"...
fstream file(filename, ios::ate | ios::out | ios::in);
//...mark the current position...
long changePos = file.tellp();
file << "This text will be changed ";
//..append something else
file << "Append some other text";
//...overwrite previous contents
file.seekp(changePos);
file << "changed text ";
file.close();
return 0;
}
using namespace std;
int main() ... {
const char* filename = "test.txt";
//just build a little sample file
ofstream sampleFile(filename);
sampleFile << "This is a sample content ";
sampleFile.close();
//declare a new file object for appending and "overwriting"...
fstream file(filename, ios::ate | ios::out | ios::in);
//...mark the current position...
long changePos = file.tellp();
file << "This text will be changed ";
//..append something else
file << "Append some other text";
//...overwrite previous contents
file.seekp(changePos);
file << "changed text ";
file.close();
return 0;
}