J'ai une fonction qui prend un nom de fichier (chaîne) et je veux avoir un tableau de noms de fichiers (chaînes) pour vérifier si le nom de fichier taht a été passé dans le tableau et sinon l'ajouter. Voici ce que j'ai obtenu jusqu'ici.Recherche d'une chaîne dans un tableau de chaînes dans C
bool read_file(char * filename, bool warnings){
//Check to see if filename is in array files
static char * files[MAXFILES];
static int counter = 0;
for(int i=0;i<counter;i++){
if(strcmp(filename,files[i]) == 0){
fprintf(stdout, "Error\n");
return 0;
}
else{
files[counter]=filename;
counter++;
}
}
FILE * fp = fopen(filename,"r");
if(fp == NULL){
if(warnings){
fprintf(stderr, "Can't open the file %s\n",filename);
return 0;
}
else{
return 0;
}
}
else{
fclose(fp);
fp = NULL;
return 1;
}
}
Pour une raison quelconque, il ne va pas ajouter de noms de fichiers aux fichiers [] toute aide serait appricated.
La boucle 'for' n'est jamais entrée, vous initialisez' counter' à '0' et vous utilisez' i
Naveen
Pourquoi 'counter' et' files' doivent-ils être statiques? – Lundin