Bonjour, j'essaie de comparer la liste des dossiers contenus dans un répertoire particulier à une liste, et du supprimer automatiquement ceux qui n'en font pas partie. J'ai essayé ceci :

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
int main()
{
    std::vector<std::string> Addons(63);
    Addons[0] = "Dossier 1";
(...)
    struct dirent **namelist;
    int n;
    int i=0;
    char nom[100];
    n = scandir("__ADDONS__", &namelist, 0, alphasort);
    if (n < 0)
        perror("scandir");
    else
    {
        while(n--)
        {
            nom[]=namelist[n];
            while(i<63)
            {
                if (strcmp(Addons[i], nom) == 0)
                {
                    printf("%s\n", namelist[n]->d_name);
                }
                i++;
            }
            printf("%s\n", namelist[n]->d_name);
        }
    }
    return 0;
}
où __ADDON__ contient le nom du répertoire à tester. Le problème, c'est que j'ai une erreur à la ligne 26, à la réassignation du char nom... Je vois pas comment faire, auriez vous une solution ?