Einmal steht das was von fstream.h drin. Das habe ich schon in fstream geändert. Nun wird aber immer ofstream angemeckert.
Die Verwirrung dürfte daher rühren, dass dein Code etwas älteres C++ ist. Die Header mit dem .h sind aus der Zeit vor dem (1998er-) ISO-Standard. Das waren zeichenbasierte Streams, die neueren sind stringbasiert. Die Schnittstellen der Klassen dürften weitestgehend kompatibel sein, aber es gibt da sicher ein paar feine Unterschiede.