Sscanf(...)

nemmezis Messages postés 22 Date d'inscription samedi 1 septembre 2001 Statut Membre Dernière intervention 16 juillet 2005 - 11 mai 2004 à 16:38
neohp Messages postés 62 Date d'inscription jeudi 5 juin 2003 Statut Membre Dernière intervention 14 octobre 2005 - 12 mai 2004 à 00:40
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

ymca2003 Messages postés 2070 Date d'inscription mardi 22 avril 2003 Statut Membre Dernière intervention 3 juillet 2006 7
11 mai 2004 à 17:08
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.
0
neohp Messages postés 62 Date d'inscription jeudi 5 juin 2003 Statut Membre Dernière intervention 14 octobre 2005
12 mai 2004 à 00:40
'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 ------
0
Rejoignez-nous