Bonjour,
J'ai un problème assez incroyable.
J'ai deux fonctions, 1 qui fait des opérations sur des strings, et une autre totalement indépendante qui affiche le temps grâce à localtime de <ctime>.
Et bien figurez-vous que lorsque j'affiche l'heure AVANT de faire des opérations sur une string, j'ai un throw sur une fonction substr() qui plante !
Et dès que je passe l'affichage de l'heure APRÈS l'autre fonction, plus de problème ...
Comment une telle chose est-elle possible ?
Je répète que ces deux fonctions sont totalement indépendantes, je les exécute l'une après l'autre dans ma fonction main().
EDIT : D'après un autre test, le programme ne plante pas si je construis l'objet qui manipule les string AVANT l'affichage de 'heure.
Voici le constructeur :
EDIT 2 : Problème résolu :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 X::X (const std::string & file) { std::ifstream file (dictionary_file); // ... std::string line, unit_line; while (std::getline (file, line)) this->messages.emplace_back (line.substr (line.find ('\t') + 1)); }
Il s'agit d'un échec d'un test de logique avec un unsigned qui passait en dessous de zéro (et donc devenait très grand).
Partager