Ciao, utilizzando il Dev C, in C++ c'è una funzione che mi dice qual è il nome della directory corrente ?
grazie
Ciao, utilizzando il Dev C, in C++ c'è una funzione che mi dice qual è il nome della directory corrente ?
grazie
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
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.
aspetta... non ho capito,
Il codice è questo:
Se tu esegui questo codice,codice:#include <iostream> #include <cstdlib> using namenspace std; int main() { system("CD"); system("PAUSE"); return 0; }
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
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 fileOriginariamente inviato da Johnny_Depp
aspetta... non ho capito,
Il codice è questo:
Se tu esegui questo codice,codice:#include <iostream> #include <cstdlib> using namenspace std; int main() { system("CD"); system("PAUSE"); return 0; }
sul display verrà visualizzata la directory in cui si trova
il file eseguibile (quello creato dal codice che ti ho appena postato).
: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
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.
Intendevo dire,Non ho capito il discorso di inserire il file in "C:\DOCUMENTI\"
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
Sì beh quello sono in grado, è solo strana questa cosa che con System("CD") non mi indica la directory corrente. Grazie.
In effetti è strano :master:Sì beh quello sono in grado, è solo strana questa cosa che con System("CD") non mi indica la directory corrente.
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