Trouver le répertoire courant

Trouver le répertoire courant - C++ - Programmation

Marsh Posté le 20-10-2005 à 04:15:58    

Question très brève et réponse sûrement très brève...
 
je fais un prog en c++ et j'aimerais dénicher le path courant sur lequel mon cpp se trouve. Par exemple, si mon .cpp est dans :
 
C:\MesProgsFous\Tic-Tac-Toe\Malade.cpp
 
La fonction me retourne :
 
C:\MesProgsFous\Tic-Tac-Toe\
 
Je sais que sa doit se faire, ça se fait en WIL, mais je cherche la fonction sous C++ :pt1cable:  
 
Quelqu'un d'entre vous la sait?
 
Merci :)
 
Alpha

Reply

Marsh Posté le 20-10-2005 à 04:15:58   

Reply

Marsh Posté le 20-10-2005 à 04:24:59    

ça dépend de ton système. Plonge toi dans MSDN. Ça sera sans doute un truc du genre getcwd

Reply

Marsh Posté le 24-10-2005 à 09:04:44    

Il existe la même constante prédéfinie qu'en php : __FILE__

Reply

Marsh Posté le 24-10-2005 à 12:13:11    

...

Reply

Marsh Posté le 24-10-2005 à 21:40:56    

graal27 a écrit :

Il existe la même constante prédéfinie qu'en php : __FILE__


 :heink:  

Reply

Marsh Posté le 24-10-2005 à 21:50:29    

Code :
  1. string pwd(void)
  2. {
  3.    const string s(__FILE__);
  4.    return s.substr(0, s.rfind('\\')); // dos/windows only
  5. }


 
je sais pas pourquoi j'ai l'impression que c'est faux :D

Reply

Marsh Posté le 24-10-2005 à 22:37:21    

Et tu as raison. :)
Déjà, il manque les guillemets autour de __FILE__, et de toute façon, je serais étonné si ça marchait.
 
Par contre tu peux faire un truc du genre:
sprintf(filename, "%s", __FILE__);
après avoir alloué de la place pour filename. Ensuite, tu peux faire ce que tu veux dessus. Evidemment, ça ne marche qu'au moment de la compilation. A l'exécution, faut pas rêver.

Message cité 1 fois
Message édité par el muchacho le 24-10-2005 à 22:42:21

---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
Reply

Marsh Posté le 24-10-2005 à 22:57:20    

il n'y a pas de guillemets autour de __FILE__, c'est déjà une chaine. D'ailleurs dans ton code tu ne mets pas non plus de guillemets  :sarcastic:
et puis mon code c'est du C++ au cas où t'aurais pas vu, donc pas de sprintf, avec string c'est automatique.
 
edit : testé sous VC2003, ça marche

Code :
  1. string pwd(void)
  2. {
  3.    const string s(__FILE__);
  4.    return s.substr(0, s.rfind('\\\\')); // dos/windows only  
  5. }
  6. int main()
  7. {
  8.    cout << pwd() << '\\n'; // affiche : "c:\\testfile", le fichier est c:\\testfile\\main.cpp
  9. }


Message édité par jesus_christ le 24-10-2005 à 23:06:16
Reply

Marsh Posté le 24-10-2005 à 23:19:04    

Ouais, ok, au temps pour moi, j'ai écrit une connerie.


---------------
Les aéroports où il fait bon attendre, voila un topic qu'il est bien
Reply

Marsh Posté le 25-10-2005 à 09:38:00    

el muchacho a écrit :

Et tu as raison. :)
Déjà, il manque les guillemets autour de __FILE__, et de toute façon, je serais étonné si ça marchait.


 
[:pingouino]
 
 
Sinon sous windows c'est GetCurrentDirectory() [:el g]

Reply

Marsh Posté le 25-10-2005 à 09:38:00   

Reply

Marsh Posté le 25-10-2005 à 11:13:15    

GetCurrentDirectory() c'est le repertoire à l'exécution, ici il veut celui à la compilation. Je vois pas trop à quoi ça sert mais bon...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed