万策尽きました。何方かアドバイスお願いします。

以下のようなコードで無限ループになてしまって、しかもファイルの中味はちゃんとあるのにbufの内容がなにも表示されない場合どのような原因が考えられるでしょうか。(in は ifstream* in となってます)


char buf[256];

if (!in->is_open()) exit(1); // ここでは終了しないのでファイルは開けてる

while (!in->eof()) {
in->getline(buf, sizeof(buf));
cout << "[loop] " << buf << endl;
}


開発環境は以下の通りです。
$ gcc -v
/usr/lib/gcc-lib/i386-redhat-linux/3.2/specs から spec を読み込み中
コンフィグオプション: ../configure --prefix=/usr --mandir=/usr/share/man --infodir=/usr/share/info --enable-shared --enable-threads=posix --disable-checking --host=i386-redhat-linux --with-system-zlib --enable-__cxa_atexit
スレッドモデル: posix
gcc バージョン 3.2 20020903 (Red Hat Linux 8.0 3.2-7)