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

  FORUM HardWare.fr
  Programmation
  C

  [C] fwrite ajoute des caractères de fin de ligne ...

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C] fwrite ajoute des caractères de fin de ligne ...

n°1657097
warp
Posté le 12-12-2007 à 12:13:20  profilanswer
 

Bonjour,
 
j'ai une application qui reçoit un fichier via tcp/ip.
Je récupère un buffer, et l'écrit dans un fichier avec la fonction fwrite.
 
L'appel de la fonction :
 
fwrite(buffer, 1 buf_len, fp)
 
Ce qui est curieux c'est que dans le fichier crée, j'ai des caractères qui s'ajoutent à la fin de ligne.
Dans mon buffer j'ai juste CR-LF comme fin de ligne (0x0d 0x0a)
mais dans le fichier que j'écrit, j'ai CR-CR-LF (0x0d 0x0d 0x0a).
 
En fin de compte le fichier n'est pas le même que l'original.
Ce qui est curieux aussi c'est que fwrite me renvoit le nombre de caractères écrits,
mais il en a écrit plus (puisque à chaque fois 0x0d en plus à chaque ligne).
 
 
Je ne comprends rien et je ne sais pas où chercher.
 
 
Merci pour voitre aide.


---------------
Il n'est pas nécéssaire de réussir pour persévérer.
mood
Publicité
Posté le 12-12-2007 à 12:13:20  profilanswer
 

n°1657099
Elmoricq
Modérateur
Posté le 12-12-2007 à 12:17:36  profilanswer
 

Tu as ouvert ton fichier en mode binary ?
 
http://msdn2.microsoft.com/en-us/l [...] S.80).aspx


Message édité par Elmoricq le 12-12-2007 à 12:19:39
n°1657122
Emmanuel D​elahaye
C is a sharp tool
Posté le 12-12-2007 à 13:31:23  profilanswer
 

warp a écrit :

j'ai une application qui reçoit un fichier via tcp/ip.
Je récupère un buffer, et l'écrit dans un fichier avec la fonction fwrite.
 
L'appel de la fonction :
 
fwrite(buffer, 1 buf_len, fp)
 
Ce qui est curieux c'est que dans le fichier crée, j'ai des caractères qui s'ajoutent à la fin de ligne.
Dans mon buffer j'ai juste CR-LF comme fin de ligne (0x0d 0x0a)
mais dans le fichier que j'écrit, j'ai CR-CR-LF (0x0d 0x0d 0x0a).
 
En fin de compte le fichier n'est pas le même que l'original.
Ce qui est curieux aussi c'est que fwrite me renvoit le nombre de caractères écrits,
mais il en a écrit plus (puisque à chaque fois 0x0d en plus à chaque ligne).


C'est parce que tu es sous DOS/Windows et qe tu as ouvert le fichier en mode texte ("w" ). Ouvre le en mode binaire ("wb" ) et il n'y aura pas d'ajouts intempestifs.


---------------
Des infos sur la programmation et le langage C: http://www.bien-programmer.fr Pas de Wi-Fi à la maison : http://www.cpl-france.org/

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

  [C] fwrite ajoute des caractères de fin de ligne ...

 

Sujets relatifs
[Sed] Modifier une ligne dans un .batRemplacement chaine de caractères dans fichier
Macro Taille Ligneprobleme affichage de caractères
simuler l'autocomplétion en ligne de commande ? [RESOLU]probleme de saut de ligne
[j2ME] Emulateur J2ME En ligne[SQL] Afficher un certain nombre de donnée dans 1 ligne d'un tableau
[Xslt] Perte des retours à la ligne d'un noeud texteTableau de chaînes de caractères
Plus de sujets relatifs à : [C] fwrite ajoute des caractères de fin de ligne ...


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