Por que não consigo ler e anexar com std :: fstream no Mac OS X?

Considere o seguinte programa C ++, que pega um arquivo e imprime cada linha. É uma fatia de um programa maior, onde mais tarde anexo ao arquivo, com base no que vejo.

#include <fstream>
using std::fstream;
#include <iostream>
#include <string>
using std::string;

int main()
{
 fstream file("file.txt", fstream::in | fstream::out | fstream::app);

 string line;
 while (std::getline(file, line))
  std::cerr << line << std::endl;

 return 0;
}

Agora aplique esta versão dofile.txt (Uma palavra na primeira linha, seguida de uma nova linha):

Rain

Na minha máquina (Snow Leopard), isso não imprime nada. Em uma inspeção mais detalhada, a primeira chamada para getline falha. Estranhamente, também falha se eu adicionar uma segunda linha: ainda nada é impresso!

Alguém pode resolver esse mistério?

questionAnswers(2)

yourAnswerToTheQuestion