basic_fstreamにもrdbufはある。
basic_fstream::rdbuf - cpprefjp C++日本語リファレンス
読み書き両方できる。
basic_fstream.cppで、
こう書く。

123を読みこんで表示し、そこに456を書き込む。
後ろに追記されてるけど、書き込み位置は、読み込み位置と独立してないんか。
(なんか勘違いしてるかも。)
Sample/cpp/basic_fstream/rdbuf/src/basic_fstream at master · bg1bgst333/Sample · GitHub