Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

probleme inconnu avec ifstream

2 réponses
Avatar
Alexandre
bonjour à tous
j'ai un problème fort étrange avec ifstream dans une de mes applis, qui
utilise ifstream pour lire un fichier texte de données, et ce depuis fort
longtemps et sans jamais me causer de soucis... jusqu'à aujourd'hui...

voici l'extrait du code (filename est une std::string)

std::ifstream Fichier(FileName.c_str()); // ici j'ai une exception
violation d'accès à l'adresse XXXX

l'exception a lieu dans _numpunct.h (?) sur la ligne suivante, dans la
classe numpunct<char> qui dérive de locale::facet :
string grouping() const { return do_grouping(); }
et effectivement au débogueur this vaut NULL. !!

Je précise que quand j'ouvre le MEME fichier, avec le même code, dans une
appli console toute bete je n'ai pas d'erreur !!!
Qu'ais-je pu faire qui perturbe autant le constructeur de ifstream ????
Surtout que je n'ai RIEN CHANGE à cette partie du code (cette classe) et que
les modifs que j'ai faites aujourd'hui ne touche que du code executé APRES
(le code suivant est executé au démarrage de l'application) !!

Il y a vraiment qq chose que je n'ai pas compris, si qqn a déjà eu ce souci
ou vois de quoi il retourne, grand merci !!!

Alexandre

2 réponses

Avatar
fgeorges
"Alexandre" writes:

l'exception a lieu dans _numpunct.h (?) sur la ligne suivante, dans la
classe numpunct<char> qui dérive de locale::facet :
string grouping() const { return do_grouping(); }
et effectivement au débogueur this vaut NULL. !!


Un this qui vaut 0, c'est pas normal ! Quel compilo utilises-tu (et
surtout quelle SL) ? Peut-être le fait de changer de locale pourrait
faire office de rustine s'il s'avère qu'il s'agit d'un bug de ta SL.

--drkm

Avatar
Alexandre
bonsoir,

l'exception a lieu dans _numpunct.h (?) sur la ligne suivante, dans la
classe numpunct<char> qui dérive de locale::facet :
string grouping() const { return do_grouping(); }
et effectivement au débogueur this vaut NULL. !!


Un this qui vaut 0, c'est pas normal ! Quel compilo utilises-tu (et
surtout quelle SL) ? Peut-être le fait de changer de locale pourrait
faire office de rustine s'il s'avère qu'il s'agit d'un bug de ta SL.



merci, mais tout est rentré dans l'ordre : j'ai quitté mon EDI, relancé
celui-ci, fait un build, et ça roulait...
Je ne sais pas d'où venait l'erreur (peut-être un .obj pas à jour, en
version release et le reste en debug, etc...)
Pour info : compilo borland C++ (edi C++ builder 6) et la STL est celle
livrée avec (j'avoue que je ne sais pas laquelle...)

Désolé pour le dérangement ;-)
A+
Alex