Mmm, a quanto pare l'implementazione di VC++ 2010 ha un bug.
Giusto per capirsi, il Thincking in C++ riporta questo codice:
codice:
  ifstream in("Iofile.cpp");
  assure(in, "Iofile.cpp");
  ofstream out("Iofile.out");
  assure(out, "Iofile.out");
  out << in.rdbuf(); // Copy file
  in.close();
  out.close();
che assert a parte è quello che ti ho detto.
Poco male.
codice:
std::string line;
f_input1.open("input.txt",ios::in);  
f_output.open("output.txt",ios::out); 

while(std::getline(f_input1,line)) {
    f_output << line << endl;
}

// chiusura file

// close dei due file.