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 :

localisation de scanf


Sujet :

C

  1. #1
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 607
    Par défaut localisation de scanf
    Bonjour

    J'utilise sscanf pour lire un float :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ii=sscanf(node->attributs[i].value,"%f",&sortie);
    Sous mon Linux, si j'ai 0.1234, il lit 0 ! alors que si j'ai 0,1234, il va lire 0 virgule 1234 , le nombre recherché.

    Par contre le même programme sous windows comprendra bien le 0.1234 et pas l'autre.

    En gros, sous Linux, la localisation du système est prise en compte alors qu'elle ne l'est pas sous Windows. Comme je défriche un fichier où le format est le format anglais, j'aimerai bien savoir s'il est possible de forcer le formatage : le séparateur décimal doit être le point, pas la virgule !
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

  2. #2
    Membre chevronné

    Profil pro
    Inscrit en
    Août 2007
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 179
    Par défaut
    Bonjour,

    Tu as essayé la fonction setlocale()?

    la catégorie LC_NUMERIC est sensée s'occuper de ça je crois..

  3. #3
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 607
    Par défaut
    Une recherche sur internet avec tes commentaires ( http://www.developpez.net/forums/d11...-lc_numeric-c/ ) m'a donné la solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     setlocale(LC_NUMERIC,"C");
    Mais, c'est quoi ce "C" ? Comment savoir qu'on a ce choix ?

    nb : testé sous Linux et sous windows.
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

  4. #4
    Membre chevronné

    Profil pro
    Inscrit en
    Août 2007
    Messages
    179
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 179
    Par défaut
    Je viens de faire un petit test, bon par défaut je suis en anglais mais je peut passer au format français (avec virgule).

    Donc, un simple
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    setlocale(LC_NUMERIC, "English");
    devrait fonctionner.

    Edit : pardon j'avais pas vu ton post, ben le "C", je connaissais pas, peut être un choix par défaut, je vais regarder sur le net à mon tour
    Edit2 : Effectivement, comme l'a confirmé leternel, c'est un choix par défaut, je connaissais "" mais une expression explicite est surement préférable

  5. #5
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Il y a plusieurs arguments possibles:
    • "C" la locale C standard
    • "" la locale system
    • d'autres selon les systèmes


    Souvent, mais pas toujours, "" est équivalente à "C"

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. bp scanf...
    Par drKzs dans le forum C
    Réponses: 6
    Dernier message: 18/09/2003, 23h08
  2. PB avec scanf
    Par ché dans le forum C
    Réponses: 6
    Dernier message: 13/08/2003, 07h25
  3. [debutant]la fonction scanf
    Par kalaka dans le forum C
    Réponses: 7
    Dernier message: 01/07/2003, 15h15
  4. Localisation d'une base Postgresql sur mdk 9.1
    Par Gregco dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 10/06/2003, 18h46
  5. Réponses: 6
    Dernier message: 10/09/2002, 03h35

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