Sscanf(...)

Signaler
Messages postés
22
Date d'inscription
samedi 1 septembre 2001
Statut
Membre
Dernière intervention
16 juillet 2005
-
Messages postés
62
Date d'inscription
jeudi 5 juin 2003
Statut
Membre
Dernière intervention
14 octobre 2005
-
Salut tout le monde,
J'ai un problème avec l'utilisation de la fonction sscanf(...).
En fait, je souhaite récupérer dans la chaîne de caractères les heures et les minutes qui s'y trouvent. Le format de ma chaîne est "22:59" par exemple. J'ai donc utilisé sscanf(...) de plusieurs façons, comme ci-dessous :
- sscanf( str_temp, "%[2]s:%[2]s", hour, min );
- sscanf( str_temp, "%[2]s%*[1]s%[2]s", hour, min );
- sscanf( str_temp, "%[2]s%*[1]c%[2]s", hour, min );

Avec ces trois méthodes, je réussi à récupérer les heures (22), mais les minutes ne sont pas bien récupérées. Je ne comprends pas mon erreur.
Aidez-moi svp.
Merci d'avance.

2 réponses

Messages postés
2070
Date d'inscription
mardi 22 avril 2003
Statut
Membre
Dernière intervention
3 juillet 2006
8
on donne des pointeurs dans sscanf, comme dans scanf :

exemmple :
char szSrc[] = "20:34";
int hour, minute;
sscanf(szSrc, "%d:%d", &hour, &minute);

pour ce cas là, il y a plus rapide :
parcour ta chaîne à la recherche du ':', fractionne la chaîne et utilise atoi pour convertir les 2 parties.
Messages postés
62
Date d'inscription
jeudi 5 juin 2003
Statut
Membre
Dernière intervention
14 octobre 2005

'soir

oui, le mieux est de recuperer la chaine entiere et ensuite de la decomposer a la main en cherchant les caractères de separation..... puis de reconvertir la chaine en entier avec la fonction int atoi(const char *)...

c plus long, mais sa marchera bcp mieux

vive les joies de l'analyse de chaine ...

huhu

bonne prog

neoh_p [=- coding spirit -=]
------- since 1999 ------