OVH Cloud OVH Cloud

a propos de visual c++

4 réponses
Avatar
Godot
Bonjour,

En développant une appli sous vc++ 6 et .NET j'ai vu un comportement étrange
de l'IDE ( c'est peut-être moi qui ai fait une gourde quelque part ).

j'ai à un moment donné du code qui ouvre un fichier


ifstream file("data.dat");

while (file) // j'ai aussi essayé while (!
file.eof() )
{
file >> x >> y >> z;
// traitement
}

Je mets le fichier "data.dat" en question dans le répertoire DEBUG où se
trouve mon exe et je lance le débuggage.
Et là, il rentre dans le while, mais ne lit rien dans le fichier et je me
retrouve évidemment fatalement avec un segfault.

Par contre, quand je lance une console et que je rentre dans ce répertoire
et exécute l'exe, je n'ai aucun problème tout se passe normal.

Où est donc l'erreur ?
Merci de m'aider à comprendre.

4 réponses

Avatar
AMcD®
Chez moi ça marche ainsi :

- Si je mets que le nom de fichier, un run depuis l'IDE prends en compte le
fichier uniquement s'il est dans le répertoire du projet.
- Si je run hors IDE, faut que le fichier soit dans le répertoire de l'exe.
Donc si je run depuis /release ou /debug, faut que le fichier y soit.

Bref, le mieux, c'est de mettre le nom entier, avec chemin quoi. Sinon, tu
règles depuis l'ide dans les paramètres du projet. Dans
projets/propriétés/debogage, dans propriété de configuration/déboguage tu
changes le working directory.

--
AMcD®

http://arnold.mcdonald.free.fr/
Avatar
Godot
"AMcD®" a écrit dans le message de
news:4085cfae$0$22873$

| Bref, le mieux, c'est de mettre le nom entier, avec chemin quoi. Sinon, tu
| règles depuis l'ide dans les paramètres du projet. Dans
| projets/propriétés/debogage, dans propriété de configuration/déboguage tu
| changes le working directory.

Merci pour l'info. Ce qui me semblait étrange est que je n'ai pas ce
problème en configuration release.
Avatar
Ambassadeur Kosh
> Merci pour l'info. Ce qui me semblait étrange est que je n'ai pas ce
problème en configuration release.



si tu lances ton release depuis l'ide, tu devrais avoir le meme souci.

dans les settings, il est possible de definir le repertoire de travail dans
lequel s'execute quand on la lance dans l'ide.
comme on le ferait dans un raccourci. donc la, tu peut mettre ./../.. par
exemple
Avatar
Thierry
Bonjour,

Ambassadeur Kosh a écrit :

Merci pour l'info. Ce qui me semblait étrange est que je n'ai pas ce
problème en configuration release.



si tu lances ton release depuis l'ide, tu devrais avoir le meme souci.

dans les settings, il est possible de definir le repertoire de travail
dans lequel s'execute quand on la lance dans l'ide.
comme on le ferait dans un raccourci. donc la, tu peut mettre ./../..
par exemple



En general je genere tout dans un rep Work où y'a les fichiers de données,
les DLL, etc.

--
« Always look at the bright side of the life... »