[RESOLU] Copies de flots en passant par les itérateurs
Messieurs dames, je vous salue bien bas.
- Le contexte : faire une copie d'un fichier texte en utilisant les itérateurs associés aux flots (istream_iterator etc...)
NB : j'ai bien concience qu'il existe d'autres moyens de dupliquer un fichier, mais c'est cette manipulation précise qui m'intéresse ici.
- Le code à l'essai :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
|
#include <iostream>
#include <algorithm>
using namespace std;
...
...
ifstream ifstr( "aaa.txt", ios::binary | ios::in );
ofstream ofstr( "aaa_copy.txt", ios::binary | ios::out );
istream_iterator< char, char > begin( ifstr );
istream_iterator< char, char > end;
ostream_iterator< char, char > out( ofstr );
copy( begin, end, out );
...
... |
- Résultat attendu : deux fichiers de taille et de contenu identique
- Résultat obtenu : aaa_copy.txt est plus petit que son modèle. Tous les sauts de ligne ont disparu. :(
- Question1 : :?: Pourquoi donc :?:
- Question2 : :?: Comment faire :?:
Dans l'attente d'une réponse éclairée et argumentée de votre part, je vous prie de recevoir, mesdames et messieurs, mes rtès caniculaires salutations.
Votre serviteur,
C.B.