C++でファイルストリームを扱う

C++ではファイル操作とは言わないらしい。何かファイルへの入出力っていうことでファイルストリームとか言うみたい。でもって、ストリームっていうのは入出力っていう理解で良いんだろうか?まあ当面は使えりゃ良いんでどうでもいいんだけど。
でもって、ファイルへの出力はfstreamっていうのを使うらしい。参考にしたのは、

http://www5c.biglobe.ne.jp/~ecb/cpp/02_04.html

このページです。まあここに詳しく書いてあるっす。
でもって、実際に俺が書いて実験してみたのは、

#include <iostream.h>
#include <fstream.h>
#include <complex.h>

int main() {
  complex<double> z1, z2;
  double a;
  int i;

  ofstream ofs ("hoge.dat");

  z1 = complex <double> (1, 0);
  z2 = complex <double> (0, 1);
  a = 1.1;

  for (i=0; i<10; i++) {
    z1 *= a*z2;
    ofs << z1 << endl;
  }

  return 0;
}

っていうので。最初、

ofstream ofs ("hoge.dat");

っていうところで出力先のファイルストリームをofsにして、その名前がhoge.datということらしい。良くわかんねーけど。その前にfstreamヘッダをインクルードしないといけないのか。
でもって実際に書き込みは、

ofs << z1 << endl;

でやってます。ofsを出力先にして、そこにz1を書き込んで、その後にendlで改行コードを書き込んでますね。どうやらC++ではendlが改行らしい。
実際にやってる計算は高校の複素数の授業で出てくる等角写像だかなんだかそんなので、複素平面上の(1,0)っていう点を90度回転させて、長さを1.1倍するのを10回繰り返して螺旋を書くプログラムです。懐かしいですねえ。高校生に複素数を教えるときはドモアブルの定理なんてやんないでEulerの公式を教えちゃった方が分かりやすいんじゃないかと思いました。