Salut tous ,

je voulais faire une fonction récursive en C++ permettant de lister les fichirs d'un répértoire ainsi que ses sous répértoires , alors j'ai écris ce code C++ :
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
void list_dir( 
  const std::string & n_dossier
){
	struct dirent *a;
	DIR *dir;
	dir = opendir(n_dossier.c_str());
	while ((a = readdir(dir)))
	{
        std::cout << a->d_name << std::endl;
		if(!opendir(a->d_name)){
			std::cout << a->d_name << std::endl;
		} else {
			std::cout << "<" << a->d_name << ">" << std::endl;
                        list_dir(a->d_name);
		}
	}
	closedir(dir);
}
Mais il ne marche pas , beh il se compile bien mais j'ai un résultat inattendu , parfois ça n'affiche qu'un seul fichier , parfois ça donne plein de points , et parfois ça donne un message d'erreur avec Runtime ...

Pourriez vous m'aider à résoudre mon probléme ?

Merci beaucoup d'avance .