PROBLEMA Problema con la classe vector C++

Pubblicità

orsetto_

Nuovo Utente
Messaggi
12
Reazioni
1
Punteggio
24
Buonasera, ho scrittu una funzione che registra in un vettore di char* tutti i nomi delle cartelle presenti in una directory.
Finché stampo il nome delle cartelle tutto okay, ma quando cerco di registrarle nel vettore, l'intero vettore viene sostituito dal nome dell'ultimo elemento, in ordine alfabetico, nella directory (indifferentemente se sia una cartella o un file).
La funzione è questa:
C++:
vector<char*> fListaDir(char *CurrentDir) {
    vector<char*> s;
    
    DIR *pDir = NULL;
    struct dirent *pD;
    pDir = opendir(CurrentDir);
    
    pD = readdir(pDir);
    do {
        DIR *pTMPDir = opendir(pD->d_name);
        if(pTMPDir!=NULL) s.push_back(pD->d_name);
        
        pD = readdir(pDir);
    } while (pD!=NULL);
    
    return s;
}

Ho anche provato a sostituire la funzione push_back con altre dalla classe vector ma senza risultati
 
Ah... pensavo fosse la stessa cosa:cav:
Usavo char* perché era comodo per altre funzioni che sto usando nel programma, ma a questo punto
 
Ah... pensavo fosse la stessa cosa:cav:
Usavo char* perché era comodo per altre funzioni che sto usando nel programma, ma a questo punto
Se usi roba della STL e di Boost sei apposto. Se stai usando la Win32 API hai sempre std::string::c_str().

Più che altro con std::filesystem quel che vuoi fare lo fai con 4 linee di codice contate.
 
Se usi roba della STL e di Boost sei apposto. Se stai usando la Win32 API hai sempre std::string::c_str().

Più che altro con std::filesystem quel che vuoi fare lo fai con 4 linee di codice contate.
In effetti ora tutto il resto l'ho risolto con std::string::c_str()

Riguardo a std::filesystem, non lo conoscevo, ma ora me lo andrò a vedere

Grazie!

Inviato da SM-G925F tramite App ufficiale di Tom\'s Hardware Italia Forum
 
Pubblicità
Pubblicità
Indietro
Top