Bonjour,

J'utilise Visual studio 2005 et récemment j'ai eu un problème avec la fonction sscanf. J'ai un code qui lit dans un fichier texte des heures au format HH:MM:SS et qui les traite ensuite. J'ai constaté que dans certains cas le résultat de mon traitement était faux. Après pas mal deJ'ai fait des tests et j'ai trouvé ceci

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
CString Str;
int H,M,S;
Str="05:02:24";
sscanf(Str,"%2i:%2i:%2i",&H,&M,&S);
Donne un résultat correcte à savoir H=5; M=2 et S=4
Par contre
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
CString Str;
int H,M,S;
Str="05:08:24";
sscanf(Str,"%2i:%2i:%2i",&H,&M,&S);
Donne un résultat faux à savoir H=5; M=0 et S=-858993460

Il semble que les chaine "08" et "09" pose problème.

J'ai adopté la solution suivante qui fonctionne

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
CString Str;
float H,M,S;
Str="05:08:24";
sscanf(Str,"%f:%f:%f",&H,&M,&S);
Quelqu'un a t'il déjà eu ce bug?
Merci.