Bonsoir,

J'ai un soucis dans mon programme, bref, j'aimerais écrire un programme qui lit un fichier, le sépare grâce à la virgule et le stocke dans un autre fichier destinataire par exemple :

1) sante,social,ebola ne connait pas le racisme.
le fichier atendu (fichier destinataire) sera le comme suite:
sante:ebola ne connait pas le racisme.
social:ebola ne connait pas le racisme.

Voici le code que j'ai écrit mais ça ne fonctionne pas, car il gère seulement la première ligne du fichier.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
 
int main ( int arg, char* argv[])
{
    /* Declaration des variables*/
    char c;
    int b, tab[1000];
    int i;
    char srce[1000],desti[1000];
    char seps[] =",";/* note d'espace de caratere*/
    char  *token = (char*)malloc(sizeof(char)*1000) ;
    char *string = (char*)malloc(sizeof(char)*1000) ;
    char** tabString = (char*)malloc(sizeof(char*)*100) ;;
 
    /*Allocation de l'espace memoire*/
    for(i = 0; i <100; i++)
        *(tabString + i) = (char*)malloc(sizeof(char)*1000) ;
 
    printf(" Entrer le nom du fichier source:");
    scanf ("%s",srce);
 
    /* ouverture du fichier de lecture*/
    FILE *src=fopen(srce,"r");
 
    /* on teste si ca existe*/
    if(src==NULL)
    {
        printf ("il n'existe pas le fichier %s \n",srce);
        return 0;
    }
 
    /*ouverture du fichier destinataire*/
    printf("entrer le fichier destinataire:");
    scanf("%s",desti);
 
    FILE *dest=fopen (desti,"w+");
 
    /*operation de separation*/
    // token=strtok(string,seps);
    int cpt = 0;
    b=1;
 
    while (! feof(src))
    {
        fgets(token, 1000, src);
        string = strtok( token, seps );
        while( string != NULL )
        {
            strcpy(*(tabString + cpt), string);
            string = strtok( NULL, seps );
            cpt++;
        }
        b = cpt-1;
        //char  *token1 = (char*)malloc(sizeof(char)*1000) ;
        for(i = 0; i < cpt-1; i++)
        {
            char  *token1 = (char*)malloc(sizeof(char)*1000) ;
            strcat(token1, *(tabString + i));
            strcat(token1, ":");
            strcat(token1, *(tabString + b));
            strcat(token1, "\n");
            printf(" %s \n", token1);
            fputs(token1, dest);
            free(token1);
        }
    }
 
    //fputs (c ,dest);
    /*on ferme les descripteur*/
    fclose (src);
    fclose (dest);
    b = getchar();
 
    return 0;
}
J'attends vos réponses pour m'aider à résoudre mon problème.