bonjour,
j'ai une chaine de caractère du type (1+2)
donc le 1 et 2 sont des chars, mais j'ai un problème quand je veux l'afficher en tant que %.3f, comment faire?
je voudrai le mettre dans un float pour procédé aux calculs
bonjour,
j'ai une chaine de caractère du type (1+2)
donc le 1 et 2 sont des chars, mais j'ai un problème quand je veux l'afficher en tant que %.3f, comment faire?
je voudrai le mettre dans un float pour procédé aux calculs
La réponse dépend si tu es sûr de n'avoir qu'un seul chiffre à tes entiers ou plusieurs...
La solution la plus complète serait :
- Mettre la valeur dans une chaîne de caractère (donc plusieurs chiffres autorisées)
- Utiliser strtod
- Faire les calculs
Jc
Encore et toujours
sscanf(buffer, "(%f%*c%f)", &f1, &f2);
Dans f1 tu aura 1, dans f2 tu aura 2 et apres tu fais tes calculs.
Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
Mon espace perso[/B]
La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]
Le coup du "%*c", c'est diabolique ! scanf() est l'oeuvre du Démon...Envoyé par Skyrunner
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 #include <stdio.h> int main(void) { static char const buffer[] = "1+2"; double f1; double f2; int n = sscanf(buffer, "(%lf%*c%lf)", &f1, &f2); printf ("n=%d f1=%.2f f2=%.2f\n", n, f1, f2); return 0; }Par contre n vaut 0, ce que je trouve assez troublant, vu qu'il y a eu 2 conversions réussies...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 n=0 f1=0.00 f2=0.00 Press ENTER to continue.
EDIT : en fait, non, ça a foiré.. (d'où le 0)...
Maudit scanf()...
Pas de Wi-Fi à la maison : CPL
Hum...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 #include <stdio.h> int main(void) { static char const buffer[] = "1+2"; double f1; double f2; int n = sscanf(buffer, "%lf%*c%lf", &f1, &f2); printf ("n=%d f1=%.2f f2=%.2f\n", n, f1, f2); return 0; }J'ai juste enlever les parentheses dans le sscanf.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 n=2 f1=1.00 f2=2.00
sscanf le cote obscur du C.
Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
Mon espace perso[/B]
La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]
Y'a un démon qui a mis des parenthèses !Envoyé par Skyrunner
Merci pour l'exorcisme !
J'ai identifié le démon :
Hé hé, pompier pyromane ?Envoyé par Skyrunner
Pas de Wi-Fi à la maison : CPL
C'est parce que dans son exemple il avait mis (1+2) donc j'ai suppose qu'il avait des parentheses dans sa chaine de caracteres.
Jedi Sith je dirai plutot.
Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
Mon espace perso[/B]
La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]
OK, scanf() c'est trop fort pour moi...Envoyé par Skyrunner
Pas de Wi-Fi à la maison : CPL
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager