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
Donne un résultat correcte à savoir H=5; M=2 et S=4
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);
Par contre
Donne un résultat faux à savoir H=5; M=0 et S=-858993460
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);
Il semble que les chaine "08" et "09" pose problème.
J'ai adopté la solution suivante qui fonctionne
Quelqu'un a t'il déjà eu ce bug?
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);
Merci.
Partager