Retour a la ligne en c

Rebonjour,
comment enlever les \n dans la lecture d'un fichier avec fgets ex:
fichier nom.txt :

marcel
bob
jack
allah
youchuuisme
banabe

la ca le met dans une chaine : fprintf("test%stest...", fichierdenom.txt);
mais il met le retour a la ligne,
comment faire pour l'enlever en gardans la fichier nom.txt tel quel?
merci.

5 réponses

  1. Tu parcours la chaine et tu enlèves les caractères '\n'
    0
    1. Tu dois lire tes lignes dans un tableau, non ?

      Un truc genre :
      /* on cherche le retour chariot */
      for (i=0; chaine[i] != '\n'; i++);
      /* on remplace par le marqueur de fin de chaine */
      chaine[i] = '\0';

      0
      1. bon, ca marche pas, voici ma source :
        #include <stdio.h>
        #include <stdlib.h>

        int main(int argc, char *argv[])
        {
        FILE* fichier = NULL;
        FILE* profe = NULL;
        char prof[1000] = "";
        int i;
        fichier = fopen("fichier.txt", "a+");
        profe = fopen("nom.txt", "r");

        while (fgets(prof, 1000, profe) != NULL)
        {
        fprintf(fichier, "%s", prof);
        for (i=0; prof[i] != '\n'; i++);
        prof[i] = '\0';

        }
        fclose(profe);
        fclose(fichier);
        printf("Fini\n\n");
        system("PAUSE");
        return 0;
        }

        ca compile mais ca plante quand je le lance.
        0
        1. Il faut modifier la chaine avant de l'écrire, déjà (si j'ai bien suivi ce que tu veux faire)

          for (i=0; prof[i] != '\n'; i++);
          prof[i] = '\0';
          fprintf(fichier, "%s", prof);

          0
          1. ca ne marche pas plus
            0