wat is mis met deze code

Status
Niet open voor verdere reacties.

Gras

Nieuwe gebruiker
Lid geworden
31 aug 2007
Berichten
3
Hallo,

Ik ben bezig met een programma dat de bestanden uit een hele directory leest en zoekt op bepaalde teksten in die bestanden. Dit is een stukje van de code:
Code:
    DIR *dp;
    char *full;
    struct dirent *ep;
    char pad[_MAX_PATH];

    dp = opendir (argv[1]);
    if (dp != NULL)
    {
     while (ep = readdir (dp)) {
     if ((strcmp(ep->d_name,".")==0) || (strcmp(ep->d_name,"..")==0)) {
        continue;
     }
     getcwd(pad, _MAX_PATH);
     strcat(full,pad);
     strcat(full,"\\");
     strcat(full,argv[1]);
cout << full;
     strcat(full,"\\");
     strcat(full,ep->d_name);

           
     checkfile(full,fil);
        
     (void) closedir (dp);
     }
     }
    else
        perror ("Directory niet te openen");
Nu loopt ie alleen vast. Ik heb het idee dat ik iets verkeerd doe met de variable full. Weet iemand wat er mis is?
 
Laatst bewerkt door een moderator:
continue? hmm moest je niet break gebruiken? k weet niet meer wat doet continue dan?
 
een iteratie is één voltooiing van de loop..

( misschien wat foutjes in mijn voorbeeld, c++ is erg lang geleden )

Code:
for (int x= 0; x < 4 x++)
{
  if ( x==2) { 
                   cout <<"iteratie nummer" << x << "word overgeslagen"<<endl; 
                   continue;
                 }
   
  cout <<"iteratie nummer << x << \n";
}

als je continue gebruikt slaat hij dus een loop over! , hij springt dus bij wijze van spreken van 1 naar 3 !
 
Laatst bewerkt:
ja dat is ook de bedoeling omdat ik de lijst van de files ook . en .. heb staan en die moet het programma niet proberen te openen.
 
Laat maar het werkt al ik moest closedir() buiten de while loop zetten :p
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan