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

  FORUM HardWare.fr
  Programmation
  C

  Ecriture dans un fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Ecriture dans un fichier

n°1286662
rabzouze
Posté le 18-01-2006 à 15:11:40  profilanswer
 

Le problèem est que lorsque je tombe sur un saut de ligne "\n", normalement il devrait simplement m'ecrire dans le fichier "\n".
Mais il me fait le teste du caractere et me di que j'obtiens une erreur
 

Code :
  1. void TraduireEnMorse(Liste l,char *source,char *dest)
  2. {
  3. /*****Travaile sur fichier code*///
  4. FILE *Fsource;
  5. FILE *Fdest;
  6.  
  7.     char c[2]; // Recuperer caractere par caractere
  8.     char* morse; // Recuperer le code morse
  9. /**********************************/
  10.  
  11. Fsource=fopen(source,"r" );
  12. Fdest=fopen(dest,"w" );
  13. if(Fsource==NULL) printf("Fichier existe pas\n" ); // Teste existence du fichier
  14.     else
  15.     {
  16.         while(fgets(c, 2, Fsource) != NULL) // On extrait caractere par caratere  
  17.         {
  18.       if (c[0]==' ') fprintf(Fdest,"*" ); // Teste si espace
  19.       else if (c[0] == '\n') fprintf(Fdest,"\n" ); // Saut de ligne
  20.       else
  21.       {
  22.        morse = RechercheMorseListe(c[0],l);
  23.        if (morse==NULL)
  24.                 {
  25.                    printf("Erreur!!! Caractere incorrecte : %c\n",c[0]);
  26.                    fprintf(Fdest,"#" );//Signifie Erreur  
  27.                 }
  28.        else fprintf(Fdest,"%s$",morse);  
  29.          }
  30.         }
  31.    }
  32.    fclose(Fsource);
  33.    fclose(Fdest);
  34. }

mood
Publicité
Posté le 18-01-2006 à 15:11:40  profilanswer
 

n°1286740
olivthill
Posté le 18-01-2006 à 16:30:37  profilanswer
 

Pour écrire des caractères dont le code Ascii est inférieur à celui de l'espace, il faut ouvrir le fichier avec le paramètre "b" (comme "binaire", par défaut, il est en mode "texte", "t" ):

Fdest=fopen(dest,"wb" );

n°1286750
theshockwa​ve
I work at a firm named Koslow
Posté le 18-01-2006 à 16:36:19  profilanswer
 

sous windows, les fichiers sont ouverts par défaut en mode "texte", ce qui implique que tout "\n" trouvé dans un fichier est converti en "\r\n", d'où ton caractère inattendu (cependant, je ne crois pas qu'il y aie de rapport avec les caractères de code inférieur à celui de l'espace, d'autant plus que, sur les tables qu'on utilise généralement, le \n a un code inférieur ...)

n°1287064
Emmanuel D​elahaye
C is a sharp tool
Posté le 18-01-2006 à 20:40:21  profilanswer
 

rabzouze a écrit :

Le problèem est que lorsque je tombe sur un saut de ligne "\n", normalement il devrait simplement m'ecrire dans le fichier "\n".


En mode binaire ("wb" ) oui. Mais en mode texte ("w" ), c'est plus compliqué que ça. Ca dépend du système.
 
http://mapage.noos.fr/emdel/notes.htm#fichiers


Message édité par Emmanuel Delahaye le 18-01-2006 à 20:40:40

---------------
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

  Ecriture dans un fichier

 

Sujets relatifs
Ecriture dans un fichierProblème d'écriture dans un fichier
[php] probleme avec ecriture de fichierprobleme d ecriture dans un fichier
Probleme d'écriture dans un fichier[JAVA] Lecture/Ecriture dans un fichier texte.
[java] ecriture dans un fichier[c/c++] petit probleme d'ecriture dans un fichier
écriture dans un fichier texte.[VBA] Ecriture dans un fichier (binary)
Plus de sujets relatifs à : Ecriture dans un fichier


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