Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2405 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  ecriture reecriture fichier en mode binaire

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

ecriture reecriture fichier en mode binaire

n°356754
lerenard
Posté le 09-04-2003 à 15:51:52  profilanswer
 

Bonjour,
 
Voila j'ai ecrit une procedure (je vous l'accorde pour l'instant elle sert pas a grand chose) mais quand je l'ai lancee pour la testee (j'aime bien les tests en cours de route) je suis reste bete sur le resultat. N'ayant pas l'habitude de manipuler les E/S binaires je vous soumets le probleme :
 
- Le code :
 

Code :
  1. void traduction(char *nom_in,char *nom_out,char **tabcorresp)
  2. {
  3. ifstream filein;
  4. ofstream fileout;
  5. char c;
  6. filein.open(nom_in,ios::in | ios::binary);
  7. if (!filein.good()) {cout << "erreur lecture " << nom_in << endl;exit(1);}
  8. fileout.open(nom_out,ios::out | ios::binary);
  9. if (!fileout.good()) {cout << "erreur ecriture " << nom_out << endl;exit(1);}
  10. while (filein.good())
  11.       {
  12.       c=filein.get();
  13.       fileout << c;
  14.       }
  15. filein.close();
  16. fileout.close();
  17. }


 
- le fichier d'entre :
aa
bb
ccccc
eeeeeee
f
- le fichier de sortie :
aa
bb
ccccc
eeeeeee
fÿ
 
- le soucis : bah c'est le "ÿ", d'ou qui sort cui-la ?
 
merci d'avance
 
 
 
 

mood
Publicité
Posté le 09-04-2003 à 15:51:52  profilanswer
 

n°356757
bounty
Posté le 09-04-2003 à 15:57:09  profilanswer
 

Essaie qqch du style  

Code :
  1. do     {
  2.      c=filein.get();
  3.      fileout << c;
  4.      }
  5. while (filein.good())

n°356763
lerenard
Posté le 09-04-2003 à 16:02:17  profilanswer
 

Je viens d'essayer, j'ai le meme resultat.
J'avais oublie de le preciser, je suis sous Windows.
Il me semble par ailleurs que ce "ÿ" doit avoir comme code ASCII 255.

n°356772
philou_a7
\_o&lt; coin ! &gt;o_/
Posté le 09-04-2003 à 16:08:14  profilanswer
 

Code :
  1. c=filein.get();
  2. while (filein.good())
  3. {
  4.     fileout << c;
  5.     c=filein.get();
  6. }


 
ton caractere 255 est juste un debordement de buffer
dans ta boucle, tu ecris avant de tester si tu a eu une erreur lors de la lecture du caractere, alors qu'il te faut faire l'inverse.
 
De maniere generale, un test d'erreur doit toujours etre juste apres l'instruction qui pêut le generer ;)

n°356787
lerenard
Posté le 09-04-2003 à 16:13:24  profilanswer
 

honte a moi...
merci beaucoup.

n°356813
Taz
bisounours-codeur
Posté le 09-04-2003 à 16:29:25  profilanswer
 

ou carrément  
 
while((c=cin.get())!= EOF)
{
}


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  ecriture reecriture fichier en mode binaire

 

Sujets relatifs
safe_mode activé sur mon hebergeurchemin vers perl automatique pour fichier exécutable
Ouverture d'un fichier Excel en Java ?URGENT !! Recherche un fichier d'easyphp !!!
Probleme fichier + MFC[C++] Lancer un prog avec le contenu d'un fichier sur l'entree stdart
[VB]Mailer en VB par SMTP / joinde un fichier[C] lecture fichiers / calcul / reecriture
[PHP] Pb avec droit apres upload d'un fichier [RESOLU] 
Plus de sujets relatifs à : ecriture reecriture fichier en mode binaire


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR