Lire des chiffres avec les virgules

stiko Messages postés 38 Date d'inscription jeudi 29 juin 2006 Statut Membre Dernière intervention 20 février 2008 - 19 juil. 2006 à 11:24
steve_clamage Messages postés 475 Date d'inscription dimanche 3 octobre 2004 Statut Membre Dernière intervention 11 août 2006 - 19 juil. 2006 à 19:46
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 omme un string puis il le transforme en entier.mais quand
les chiffres contioent une virgule, il ne lit pas.

le code est :


#include 

#include <fstream>

#include <string>

#include 

#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["<




le fichier newbase contient les chiffres suivanr:


3,1; 0,076; -0,36; -0,014; 0,026 ;







merci pour les réponses.

5 réponses

wxccxw Messages postés 755 Date d'inscription samedi 15 mai 2004 Statut Membre Dernière intervention 30 janvier 2011
19 juil. 2006 à 11:47
les chiffres doivent contenir des point et non pas des virgules.
la virgules pour les decimales, c'est francais, les americains utilisent le point

12,2 = pas bon
12.2 = bon
0
wxccxw Messages postés 755 Date d'inscription samedi 15 mai 2004 Statut Membre Dernière intervention 30 janvier 2011
19 juil. 2006 à 11:48
ton fichier devrat etre :
3.1; 0.076; -0.36; -0.014; 0.026 ;
0
perig Messages postés 358 Date d'inscription vendredi 1 novembre 2002 Statut Membre Dernière intervention 5 septembre 2006
19 juil. 2006 à 12:03
Oui, attention !!!

La virgule c'est le séparateur des milliers!

Ex : 1,456.3 $ --> en VF = 1 456,3$

mais pour la prog faut utiliser le système américain (pas de bol)





---Perig---
Pour vous servir 
Et parfois en galère 
Souvent même
0
wxccxw Messages postés 755 Date d'inscription samedi 15 mai 2004 Statut Membre Dernière intervention 30 janvier 2011
19 juil. 2006 à 18:39
sinon tu peux faire que ton prog remplace les virgules par des points .
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
steve_clamage Messages postés 475 Date d'inscription dimanche 3 octobre 2004 Statut Membre Dernière intervention 11 août 2006 5
19 juil. 2006 à 19:46
Le mieux c'est d'utiliser les locales, comme ca s'adapte a l'envirronement.
0
Rejoignez-nous