Comment faire une boucle dans un sscanf ?
Fermé
geekat
Messages postés
228
Date d'inscription
vendredi 31 juillet 2015
Statut
Membre
Dernière intervention
24 février 2017
-
Modifié par geekat le 31/01/2016 à 14:35
geekat Messages postés 228 Date d'inscription vendredi 31 juillet 2015 Statut Membre Dernière intervention 24 février 2017 - 8 févr. 2016 à 15:15
geekat Messages postés 228 Date d'inscription vendredi 31 juillet 2015 Statut Membre Dernière intervention 24 février 2017 - 8 févr. 2016 à 15:15
A voir également:
- Comment faire une boucle dans un sscanf ?
- Xiaomi s'éteint tout seul et se rallume en boucle - Forum Xiaomi
- Tv orange chargement en boucle ✓ - Forum TV & Vidéo
- Huawei s'allume et s'éteint en boucle - Forum Huawei
- Redémarrage en boucle Xiamo mi note 10 - Forum Xiaomi
2 réponses
[Dal]
Messages postés
6202
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
14 janvier 2025
1 097
Modifié par [Dal] le 1/02/2016 à 12:48
Modifié par [Dal] le 1/02/2016 à 12:48
Salut geekat,
Peux-tu donner un exemple de ce qui figure dans "chaine" ?
Dans ton premier code, tu mets "%lf ,%lf ,%lf ,%lf", alors que dans le second, il n'y a pas d'espace suivi d'une virgule de consommés dans la lecture faite par sscanf.
Par ailleurs, si tu sais qu'il en a 4, je ne vois pas pourquoi le premier code ne serait pas "optimisé", surtout compte tenu de ce que tes caractères séparateurs, bien que bizarres (un espace suffit, non ?), sont pris en charge.
Si les valeurs n'étaient séparées que par un espace, le 2ème code fonctionnerait probablement.
Dal
Peux-tu donner un exemple de ce qui figure dans "chaine" ?
Dans ton premier code, tu mets "%lf ,%lf ,%lf ,%lf", alors que dans le second, il n'y a pas d'espace suivi d'une virgule de consommés dans la lecture faite par sscanf.
Par ailleurs, si tu sais qu'il en a 4, je ne vois pas pourquoi le premier code ne serait pas "optimisé", surtout compte tenu de ce que tes caractères séparateurs, bien que bizarres (un espace suffit, non ?), sont pris en charge.
Si les valeurs n'étaient séparées que par un espace, le 2ème code fonctionnerait probablement.
Dal
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 844
1 févr. 2016 à 23:14
1 févr. 2016 à 23:14
Bonjour,
Attention à la cohérence entre tes sscanf(). Comme dit [Dal], dans le premier tu as mis "%lf, %lf..." et dans le second, tu considères : "%lf %lf ...".
for(j=0;j<=4;j++)
Attention, tu as mis j==4 comme valeur max. Mais le dernier indice est 3...
Sinon, tu as utilisé la bonne méthode.
Qu'est-ce qui te fait dire que ça ne fonctionne pas ?
Cdlt,
Attention à la cohérence entre tes sscanf(). Comme dit [Dal], dans le premier tu as mis "%lf, %lf..." et dans le second, tu considères : "%lf %lf ...".
for(j=0;j<=4;j++)
Attention, tu as mis j==4 comme valeur max. Mais le dernier indice est 3...
Sinon, tu as utilisé la bonne méthode.
Qu'est-ce qui te fait dire que ça ne fonctionne pas ?
Cdlt,
[Dal]
Messages postés
6202
Date d'inscription
mercredi 15 septembre 2004
Statut
Contributeur
Dernière intervention
14 janvier 2025
1 097
2 févr. 2016 à 11:25
2 févr. 2016 à 11:25
A la réflexion, je pense que sa boucle ne va lire que la 1ère valeur 4 fois... ce n'est pas fscanf ...
1 févr. 2016 à 23:15
Pas besoin d'espaces entre les %lf pour lire les variables.
C'est facultatif.
A+
Modifié par [Dal] le 2/02/2016 à 11:24
hmm..., oui, mais comme il y a un espace suivi d'une virgule dans le masque il faut qu'il y ait une cohérence entre le masque et le contenu de la chaîne (c'est pourquoi je lui demande de confirmer quel est le contenu de la chaîne).
donne :
Dal
8 févr. 2016 à 15:15