Hallo zusammen,
ich habe heute mal versucht in einem ofstream etwas zu schreiben, dann ein paar Positionen zurück zu springen und sozusagen mitten in dem stream was zu überschreiben… z.b. aus einem ‚a‘ ein ‚b‘ machen.
Laut der Dokumentation für seekp sollte das ohne Probleme Möglich sein. Ich programmiere unter W2k und benutzte Visual Studio C++.
Beim debuggen konnte ich wunderschön verfolgen wie die Zeichenketten nacheinander in den buffer geschrieben werden. Auch der _ptr zeigt immerschön auf die richtige stelle, nämlich an die nächste Position zum schreiben. Sobald ich aber seekp() aufrufe, egal in welcher kombination, sei es mit der Definierung von ios_base::beg oder ios_base::end (beides mit offset) oder eben nur die Position, springt _ptr auf die selbe addresse wie _base und damit an den wunderschönen Anfang des streams. Was mir nicht wirklich was bringt da ich ja eben gerne in die Mitte von bereits geschriebem Text springen möchte und da einen Wert ändern möchte.
Laut Internet bin ich nicht der einzige der so ein Problem hat. Kennt irgendjemand eine Lösung für dieses Problem?
Grüße,
Swen
PS: seltsamerweise funktioniert iftstream::seekg() ohne Probleme und so wie die Doku es erwarten lässt…