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 :

Lire des chiffres avec les virgules


Sujet :

C++

  1. #1
    En attente de confirmation mail
    Inscrit en
    Juin 2006
    Messages
    31
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 31
    Points : 11
    Points
    11
    Par défaut Lire des chiffres avec les virgules
    salut,

    j'ai fait un petit programme pour ouvrire un fichier texte qui contient seument des chifres séparées par des points virgules.ce programme lit les chifres comme un string puis il les transforme en entier.mais quand les chiffres contient une virgule, il me donne des zéros.
    le code est :
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
     
    #include <algorithm>
    #include <fstream>
    #include <string>
    #include <iostream>
    #include <sstream>
    #include <functional>
    using namespace std;
    double nbLigne = 0;
    int main()
    {
    int fonction();
    double *tab=new double [100];
    ifstream fichier( "newBase.txt" );
    int nbElement = 0;
    if ( fichier ) // ce test échoue si le fichier n'est pas ouvert
    {
    string ligne; // variable contenant chaque ligne lue
    while ( getline( fichier, ligne,';') )
    {
    //transformation de string en double
    stringstream s;
    s << ligne;
    double n;
    s >> n;
     
    tab[nbElement]=n;
    nbElement++;
     
    }
    }
    //for (int i=0;i<nbElement;i++)
    //cout <<"tab["<<i<<"]=" <<tab <<endl;
     
    cout <<"le nombre des elements =" <<nbElement<<endl;
    delete [] tab;
    }
    le fichier newbase contient les chiffres suivanr:
    3,1; 0,076; -0,36; -0,014; 0,026 ;
    merci pour les réponses.

  2. #2
    Rédacteur
    Avatar de Laurent Gomila
    Profil pro
    Développeur informatique
    Inscrit en
    Avril 2003
    Messages
    10 651
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 10 651
    Points : 15 920
    Points
    15 920
    Par défaut
    Il faut changer la locale pour qu'elle comprenne les virgules (celle par défaut comprend les points pour les nombres décimaux).

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    140
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 140
    Points : 166
    Points
    166
    Par défaut
    Bonjour,

    utilise "atof"

  4. #4
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    atof ne changera rien, et de toute façon, on n'utilise plus atof() mais strtod().

  5. #5
    Expert éminent sénior
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 279
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 279
    Points : 11 015
    Points
    11 015
    Par défaut
    Tu peux en fait imbuer, avec la locale française, uniquement le flux dans lequel tu lis tes floats.

Discussions similaires

  1. Gestion des transactions avec les composants DOA
    Par lper dans le forum Bases de données
    Réponses: 2
    Dernier message: 01/12/2008, 16h06
  2. Linux à des problèmes avec les brevets
    Par bilb0t dans le forum Linux
    Réponses: 15
    Dernier message: 21/11/2006, 13h54
  3. [Eclipse] [VE] Créer des menus avec les classes SWT de VE
    Par jbcorens dans le forum SWT/JFace
    Réponses: 3
    Dernier message: 30/08/2005, 12h25
  4. Commande pour afficher des chiffres apres la virgule
    Par manar dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 23/09/2004, 18h28
  5. [ZIP]besoin de lire des fichiers avec l'extension tar.gz
    Par mathieublanc13 dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 24/05/2004, 13h35

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