bonjour,


debutant en programmation en c, j'ai besoin de votre aide.

je cherche un creer un petit programme pour comparer deux fichier txt et ecrire la difference dans un troisiemme fichier.
j'ai fai un petit programme, j'arrive a faire la comparaison mais il ecrit plusieur fois la difference dans mon troisiemme fichier.

en gros ce que je cherche a faire c'est:
je lis la premiere ligne de mon premier fichier
et je la compare avec toute les ligne de mon deuxiemme fichier
si la ligne de mon fichier1 et != de toute les ligne de mon fichier2 je l'ecris dans mon fichier 3
et je continue avec la seconde ligne de mon fichier1 etc etc etc.......

voila ce que j'ai deja fait:

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
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
#include <stdio.h> 
#include <stdlib.h> 
#include <string.h> 
 
int main() 
 
{ 
 
FILE *resultats, *impaire, *final; 
 
printf("Debut du programme\nPatientez...\n\n"); 
 
 
char s[100], s2[100],s3[100]; 
 
char* filename1 = "resultats.txt"; 
 
char* filename2 = "impaire.txt"; 
 
char* filename3 = "final.txt"; 
 
resultats = fopen(filename1, "r" ); 
 
if (resultats == NULL) 
 
{ 
 
printf("Unable to open file %s\n", filename1); 
 
return 1; 
 
} 
 
 
 
impaire = fopen(filename2, "r" ); 
 
if (impaire == NULL) 
 
{ 
 
printf("Unable to open file %s\n", filename2); 
 
return 1; 
 
} 
 
final = fopen(filename3, "w" ); 
 
 
if (final == NULL) 
 
{ 
 
printf("Unable to open file %s\n", filename3); 
 
return 1; 
 
} 
 
 
 
 
while (fgets(s, 100, resultats) != NULL) 
 
{ 
 
rewind(impaire); 
 
while (fgets(s2, 100, impaire) != NULL) 
 
{ 
printf ("%s",s); 
printf ("%s\n",s2); 
 
 
 
if(strcmp(s2, s) !=0) 
{ 
strcpy(s3,s); 
fprintf(final,"%s",s3); 
 
} 
 
 
 
 
} 
 
 
 
} 
 
 
 
 
 
 
fclose(resultats); 
 
fclose(impaire); 
 
fclose(final); 
 
return 0; 
 
}
help me please merci