Znalazłem odpowiedź na moje pytanie.
Wnętrze pliku txt: [01234]
// te klamry nie są wewnątrz pliku jak coś
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
fstream file("text2.txt");
//Tellp nie jest konieczny, sluzy tylko do zobrazowania
cout << "Tellp: " << file.tellp() << endl; // Wskaznik na samym poczatku
file.seekp(2); // Przesuwa wskaznik
cout << "Tellp: " << file.tellp() << endl; // Wskaznik po przesunieciu
file << "y";
file.close();
}
Wynik: w pliku jest teraz: [01y34]
Mooożna też ustawić wskaznik na koniec i przesunąć go od konca. Czyli jeśli w naszym pliku istnieje [01234], to:
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
fstream file("text2.txt");
file.seekp(-2,ios_base::end);
file << "y";
file.close();
}
Teraz będzie wyglądał tak: [012y4.]
[-2] czyli ta liczba na początku oznacza, o ile ma być przesunięty wskaźnik od końca. Gdybyśmy dali na plusie to wiadomo, że poszedłby do przodu.
Oczywiście te funkcje mają pewną wadę, mianowicie zastępują wskazaną liczbę zamiast upchać naszą zawartość, ale dla mnie to nie problem. Powiem nawet że właśnie chciałem przy okazji usunąć zawartość w środku i zamienić ją inną, tak więc dla mnie funkcja wymarzona. Dwie pieczenie na jednym ogniu.