BMP読み込む・書き込み

今日も、フルスクラッチによるグラフィックスプログラミング入門で画像処理ライブラリを自作。
24bppのBMPのみなので、
BITMAPFILEHEADBITMAPINFOHEADERさえあれば、あとはデータ部分のみ。
結構簡単にできました。
(まあ、ソース写しただけだし…)
しかし、ソースでは、fopen()なんかを使っていたので、
C++らしくofstreamに置き換えたら、動きがおかしくなりました。
書き込みのときに、画像の上半分にごみが入ってしまうみたい。
元のソースが、バイナリモードでの書き込みやら、

FILE *f = fopen(filename, "wb");

シークやら

fseek(f, 0, SEEK_SET);

をやっていたので、
ofstreamの書き込みモードやら、write()メソッドやらseekg()メソッドを色々いじってみたが、原因は分からず。
着目するところがおかしいのかも。
うーん、まあ、fopen()使えば問題ないし、、、今後の課題ということで。
そもそも画像バッファクラスがおかしいかもしれないし、、。