IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Perte de décimales sscanf


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mai 2009
    Messages : 22
    Par défaut Perte de décimales sscanf
    Bonjour,

    Je me trouve face à un problème qui, je pense, peut être résolu rapidement.

    Je veux lire cette ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    0  130.8489990234375  14.63479995727539  108.2300033569336
    que j'ai récupérée dans un fichier et stockée dans un buffer char *.

    Je fais ceci pour récupérer les doubles:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    double a = 0.0, b = 0.0, c = 0.0;
    sscanf(buffer, "%d  %lf  %lf  %lf", &j, &a, &b, &c)
    Cependant un problème se passe sur la première lecture du double en effet sscanf ne retourne pas 4 et les valeurs des variables sont:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    j : 0
    a : 130.0
    b : 0.0
    c : 0.0
    Que dois-je changer pour que la lecture du double se passe bien?


    Merci

    Inouee

  2. #2
    Membre très actif

    Femme Profil pro
    Collégien
    Inscrit en
    Juillet 2010
    Messages
    591
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Afghanistan

    Informations professionnelles :
    Activité : Collégien

    Informations forums :
    Inscription : Juillet 2010
    Messages : 591
    Par défaut
    Salut,

    En remplaçant %lf par %f cela donne quoi?

  3. #3
    Modérateur
    Avatar de gangsoleil
    Homme Profil pro
    Manager / Cyber Sécurité
    Inscrit en
    Mai 2004
    Messages
    10 150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Manager / Cyber Sécurité

    Informations forums :
    Inscription : Mai 2004
    Messages : 10 150
    Par défaut
    Bonjour,

    Je te conseille la lecture du tres bon tuto sur scanf et ses acolytes : http://xrenault.developpez.com/tutoriels/c/scanf/

    Recupere le code de retour de scanf, et analyse-le. S'il ne contient pas ce que tu attends, regarde pourquoi (errno par exemple).
    "La route est longue, mais le chemin est libre" -- https://framasoft.org/
    Les règles du forum

  4. #4
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Vérifie soigneusement le contenu de la ligne et donne le code que tu exécutes, parce que tout semble normal :
    Le code suivant donne des résultats corrects
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #include <stdio.h>
    int main(void)
    {
      char  buffer[] = "0  130.8489990234375  14.63479995727539  108.2300033569336";
      int j;
      double a = 0.0, b = 0.0, c = 0.0;
      sscanf(buffer, "%d  %lf  %lf  %lf", &j, &a, &b, &c) ;
      return 0;
    }

Discussions similaires

  1. [XL-2010] Perte de décimales lors de copie de cellules
    Par five1966 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 06/03/2015, 08h36
  2. [AC-2002] Problème de perte de décimale sur table Oracle liée via ODBC
    Par prpa11 dans le forum Access
    Réponses: 2
    Dernier message: 26/05/2014, 18h03
  3. Addition et perte de décimale
    Par lodan dans le forum Langage
    Réponses: 9
    Dernier message: 05/07/2010, 14h14
  4. Réponses: 4
    Dernier message: 14/06/2006, 11h07

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo