Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    643

    [C++] Directory corrente

    Ciao, utilizzando il Dev C, in C++ c'è una funzione che mi dice qual è il nome della directory corrente ?
    grazie

  2. #2
    se vuoi soltanto visualizzarlo a video:
    ...
    #include <stdlib.h>
    ...
    system("CD");

    se invece vuoi inserire il nome della CurDir
    in una variabile:

    ...
    system("CD > tmp.txt");

    ora apri il file tmp.txt

    e leggi la prima riga, contenente la directory corrente
    e l'assegni ad un puntatore char*
    ...Terrible warlords, good warlords, and an english song

  3. #3
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    643
    Però ho visto che se inserisco questo comando in un file che è in un'altra directory rispetto a quella in cui è installato il Dev C non mi dà la dir in cui lavoro, ma quella in cui è installato il Dev C.

  4. #4
    aspetta... non ho capito,

    Il codice è questo:
    codice:
    #include <iostream>
    #include <cstdlib>
    using namenspace std; 
    
    int main()
    {
        system("CD"); 
        system("PAUSE");
        return 0;
    }
    Se tu esegui questo codice,
    sul display verrà visualizzata la directory in cui si trova
    il file eseguibile
    (quello creato dal codice che ti ho appena postato).

    Quindi, se io copio/incollo il file eseguibile in una qualsiasi
    directory ed eseguo nuovamente il programma, la directory cambierà
    continuamente... (indicandomi sempre il patch di questo eseguibile, non di Dev C++)

    Se non è questo che vuoi ottenere dal programma, spiegati meglio.

    ciao.
    ...Terrible warlords, good warlords, and an english song

  5. #5
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    643
    Originariamente inviato da Johnny_Depp
    aspetta... non ho capito,

    Il codice è questo:
    codice:
    #include <iostream>
    #include <cstdlib>
    using namenspace std; 
    
    int main()
    {
        system("CD"); 
        system("PAUSE");
        return 0;
    }
    Se tu esegui questo codice,
    sul display verrà visualizzata la directory in cui si trova
    il file eseguibile
    (quello creato dal codice che ti ho appena postato).
    Invece io eseguendo questo codice, dall'istruzione system("CD"); ottengo la directory in cui ho il file DevCpp.exe che è quella in cui ho tutti le dir che vengono installate col Dev C (Includes, Template, Bin, etc...), non ottengo la directory in cui si trova questo file

  6. #6
    :master: non capisco il perchè... a me funziona correttamente...

    proviamo un'altra soluzione:

    prova ad eseguire questo codice
    e dimmi cosa visualizzi.

    n.b. prima di eseguire il prog. , inserisci il file "prova.exe" in "C:\DOCUMENTI\"

    codice:
    // prova.cpp
    #include <iostream>
    using namespace std;
    
    int main(int argc, char **argv)
    {
        cout << argv[0];
        return 0;
    }
    ...Terrible warlords, good warlords, and an english song

  7. #7
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    643
    Non ho capito il discorso di inserire il file in "C:\DOCUMENTI\", comunque argv[0] mi indica il file che sto eseguendo col percorso completo corretto.

  8. #8
    Non ho capito il discorso di inserire il file in "C:\DOCUMENTI\"
    Intendevo dire,
    Compila il codice "prova.cpp", ottenuto l'eseguibile "prova.exe" <--
    copialo e incollalo nella directory "C:\DOCUMENTI\"

    eseguendolo (da DOS), dovresti visualizzare "C:\Documenti\prova.exe"
    ---------------------------------------------------------------------

    Visto che mi hai già confermato che anche a te funziona,
    andiamo avanti...

    Ora devi splittare la stringa argv[0], estrapolando
    soltanto il patch dell'eseguibile (directory corrente)
    ed omettendo il nome del file prova.exe .
    ...Terrible warlords, good warlords, and an english song

  9. #9
    Utente di HTML.it
    Registrato dal
    Mar 2002
    Messaggi
    643
    Sì beh quello sono in grado, è solo strana questa cosa che con System("CD") non mi indica la directory corrente. Grazie.

  10. #10
    Sì beh quello sono in grado, è solo strana questa cosa che con System("CD") non mi indica la directory corrente.
    In effetti è strano :master:

    se ti va, prova a scaricare di nuovo DEV C++ (magari una versione
    più aggiornata) e reinstallalo.

    in genere system("CD"); funziona.
    ...Terrible warlords, good warlords, and an english song

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.