Je suis nouveau en C++ et j'expérimente avec l'en-tête dirent.h pour manipuler les entrées du répertoire. La petite application suivante compile mais vomit après avoir ajouté un nom de répertoire. Quelqu'un peut-il me donner un indice? L'int quit est là pour fournir une boucle while. J'ai enlevé la boucle dans le but d'isoler mon problème.Comment utiliser correctement dirent.h
merci!
#include <iostream>
#include <dirent.h>
using namespace std;
int main()
{
char *dirname = 0;
DIR *pd = 0;
struct dirent *pdirent = 0;
int quit = 1;
cout<< "Enter a directory path to open (leave blank to quit):\n";
cin >> dirname;
if(dirname == NULL)
{
quit = 0;
}
pd = opendir(dirname);
if(pd == NULL)
{
cout << "ERROR: Please provide a valid directory path.\n";
}
return 0;
}
L'utilisation d'une chaîne a résolu mon problème. Quel était le problème avec ma mise en œuvre de style c? – Nick
@Nick Youdon n'allouer aucune mémoire à dirname. Si vous aviez alloué la mémoire, la façon de tester si elle était vide aurait été 'if (! Strcmp (dirname," "))' –