Deja, ouvre ton fichier en mode binaire (std::ios::binary) ca t'evitera certains gags.
Ensuite, je pense que travailler ligne par ligne est une tres mauvaise idee.
Tu as plutot interet a lire ton fichier par blocs fixes ( ifstream::read, ifstream::gcount, ofstream::write . T'as besoin de rien d'autre et surtout pas de ifstream::eof!).