Mon programme prend deux fichiers avec des mots triés en tant que paramètre et effectue le mélange en 1 seul fichier appelé final_sorted.txt.le programme fonctionne avec succès et crée le fichier mixte, même en ignorant les mots répétés, mais le compilateur me dit quelques avertissements qui ne sont pas aussi enlevés.avertissement de passer l'argument 1 de 'fopen' du type de pointeur incompatible
[email protected]:~/Escritorio/mezclar (2)$ gcc meclapro.c -o mixmeclapro.c: In function ‘mix_files’:
meclapro.c:10: warning: passing argument 1 of ‘fopen’ from incompatible pointer type
/usr/include/stdio.h:249: note: expected ‘const char * __restrict__’ but argument is of type ‘char **’
meclapro.c:11: warning: passing argument 1 of ‘fopen’ from incompatible pointer type
/usr/include/stdio.h:249: note: expected ‘const char * __restrict__’ but argument is of type ‘char **’
meclapro.c: In function ‘main’:
meclapro.c:69: warning: passing argument 1 of ‘mix_files’ from incompatible pointer type
meclapro.c:6: note: expected ‘char **’ but argument is of type ‘char *’
meclapro.c:69: warning: passing argument 2 of ‘mix_files’ from incompatible pointer type
meclapro.c:6: note: expected ‘char **’ but argument is of type ‘char *’
ceci est mon code, qui prend, qui prend le paramètre de ligne de commande
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
void mix_files(char **file1, char **file2){
FILE *a1, *a2, *output;
char aux1 [10000],aux2 [10000];
a1 = fopen(file1, "r");
a2 = fopen(file2, "r");
ouput = fopen ("final.txt", "w+");
// read the first line of each file:
fscanf(a1,"%s",aux1);
fscanf(a2,"%s",aux2);
// loop, while !feof for both file
while(!feof(a1) && !feof(a2)) {
// Select the line to add
if(strcasecmp(aux1,aux2) < 0){
// add the line
fprintf(output,"%s\n",aux2);
//read the next line from aux2
fscanf(a2,"%s",aux2);
}
else if(strcasecmp(aux1,aux2)>0){
fprintf(salida,"%s\n",aux1);
fscanf(a1,"%s",aux1);
}
if (strcasecmp(aux1,aux2)==0){
//printf("repetidas\n");
fprintf(salida,"%s\n",aux1);
fscanf(a1,"%s",aux1);
fscanf(a2,"%s",aux2);
}
}
if(!feof(a1)){
while(!feof(a1)) {
fscanf(a1,"%s",aux1);
fprintf(salida,"%s\n",aux1);
}
}
if(!feof(a2)){
while(!feof(a2)) {
fscanf(a2,"%s",aux2);
fprintf(salida,"%s\n",aux2);
}
}
}
int main(int argc, char *argv[]){
mix_files(argv[2], argv[1]);
return(0);
}
Je voudrais que quelqu'un me aider à découvrir la raison de l'avertissement et comment pourrais-je fixer, grâce à l'avance vos réponses, désolé pour mon anglais