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?