Retour a la ligne en c

seo610 Messages postés 705 Statut Membre -  
seo610 Messages postés 705 Statut Membre -
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. Urielxx Messages postés 223 Statut Membre 46
     
    Tu parcours la chaine et tu enlèves les caractères '\n'
    0
  2. seo610 Messages postés 705 Statut Membre 102
     
    oui, mais comment?
    0
  3. Urielxx Messages postés 223 Statut Membre 46
     
    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
  4. seo610 Messages postés 705 Statut Membre 102
     
    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
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. Urielxx Messages postés 223 Statut Membre 46
     
    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. seo610 Messages postés 705 Statut Membre 102
       
      ca ne marche pas plus
      0