Retour à la ligne dans 1 fichier txt

betterlife Messages postés 30 Statut Membre -  
betterlife Messages postés 30 Statut Membre -
Bonjour,
comment faire un retour à la ligne dans un fichier texte en utilisant le langage c ?? cette cmd ne marche pas: fprintf(ficnou,"\n");
merci B1
Configuration: Windows Vista
Firefox 3.0.14

12 réponses

  1. marven23 Messages postés 76 Statut Membre 2
     
    salut,

    comment ca marche pas?
    c'est une erreur de compilation ou après l'éxecution tu n'obtient pas de résultat voulu?

    explique d'avantage pour que je peux t'aider...

    @+
    0
  2. betterlife Messages postés 30 Statut Membre
     
    je veux transformer une chaine de caractere d'un fichier à un autre, le deuxieme fichier contient qu'un mot à la ligne, càd si il trouve un espace sur la ligne du premier fichier, il fait un retour à la ligne sur le deuxieme fichier
    0
  3. marven23 Messages postés 76 Statut Membre 2
     
    Poste ton code pour que je puisse t'aider...

    @+
    0
  4. betterlife Messages postés 30 Statut Membre
     
    void CClient::lire_fichier(char *nom_fic)
    {
    FILE *fic,*ficnou;
    fic = fopen(nom_fic,"r");

    ficnou = fopen("d:\\tmp.txt","w");
    char chaine[100];
    char *p;
    int j=0;
    int i=0;

    if (!fic){
    printf("erreur");
    exit(0);
    }
    else{
    fgets(chaine,100,fic);

    }

    for(p=chaine;*p;p++){
    if(*p != ";")
    fwrite(p,50,1,ficnou);
    else
    fprintf(ficnou,"\n");
    }
    }
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. marven23 Messages postés 76 Statut Membre 2
     
    1. tu a lu le fichier dans chaine[100] donc tu doit etre sûr que la taille du fichier source est de 100 carcacteres
    sinon tout le travail est faux

    2. au lieu de se casser la tete avec un pointeur tu peut parcourir simplement la chaine lu avec un index: chaine[i]
    au lieu de p, car tu connait déja la taille de chaine

    for(int i=0;i<100;i++){
    if (chaine[i]!=' ') fputc(chaine[i],ficnou);
    else fputc('\n',ficnou);
    }

    3. pourquoi le caractere ';' tu as dit espace et non pas point virgule?
    0
  7. betterlife Messages postés 30 Statut Membre
     
    j'ai changé le séparateur ds le fichier, mnt c ';'
    0
  8. betterlife Messages postés 30 Statut Membre
     
    je connais pa la taille du fichier, pcq c variable, ta solution ne m a pa fait le retour à la ligne aussi
    0
  9. marven23 Messages postés 76 Statut Membre 2
     
    1. alors tu doit lire le fichier caractere par caractere jusqu'à le EOF caractere

    2. et si le retour à ligne est effectué par : else fputc('\n',ficnou); // traduction : si le carcatere==';' on ecrit '\n'

    @+
    0
  10. betterlife Messages postés 30 Statut Membre
     
    comment je peux le lire caractere par caractere ??
    0
  11. betterlife Messages postés 30 Statut Membre
     
    et ce code :
    for(p=chaine;*p;p++){
    if(*p==';')
    fputc('\n',ficnou);

    else
    fwrite(p,sizeof(chaine),7,ficnou);

    }

    me permet de lire caractere par caractere ??
    0
  12. marven23 Messages postés 76 Statut Membre 2
     
    char c;
    c=fgetc(fic);
    0
  13. betterlife Messages postés 30 Statut Membre
     
    merci pr ton aide, ca marche mnt
    0