Ignorer des caractères avec scanf
Le
michel

Bonjour,
j'ai une date au format :
"Fri, 10 Dec 2014 20:40:50 +0000"
Je voudrais récupérer "10 Dec 2014 20:40:50"
J'ai vu qu on pouvait ignorer des caractères avec "%*", mais ça plante
(violaton d'accès)
Est-ce possible avec scanf() ?
Sinon, je découperai les espaces avec strstr()
Merci.
j'ai une date au format :
"Fri, 10 Dec 2014 20:40:50 +0000"
Je voudrais récupérer "10 Dec 2014 20:40:50"
J'ai vu qu on pouvait ignorer des caractères avec "%*", mais ça plante
(violaton d'accès)
Est-ce possible avec scanf() ?
Sinon, je découperai les espaces avec strstr()
Merci.
Plutôt que de nous expliquer ce que l'on peut faire, peux-tu nous
montrer ton code qui plante ? Il y a tellement de raison pour que scanf
ne marche pas, ce sera beaucoup plus simple d'expliquer comment résoudre
ton problème.
ÀMHA, il faut utiliser sscanf.
if( 6!=sscanf(entree, "%*[A-Za-z],%d %3s%d%d:%d:%d %*[-+0-9]",
&j, &l, &a, &h, &m, &s) ) deposer_plainte();
Tu veux dire strtok() ?
Antoine
Merci...
En fait ça marchait correctement, j'avais testé avec
"%*5c%2d %3s %4d %2d:%2d:%2d%*6c",
mais je testais avec sscanf_s() où là ça plante.
Mais avec sscanf(), pas de problème.
Avec tous les bons arguments du bon type et dans le bon ordre, sscanf_s
marche tout aussi bien que sscanf avec %* (testé avec VC9).
Comme cette fonction est récente, il est possible que tu sois tombé sur
un bogue spécifique de l'implémentation de la bibliothèque standard que
tu utilises ; ou un message incorrect du compiler (pas de
__attribute__((__format__(__scanf_s__,n,p))) avec GCC, par exemple) ?
Antoine