Probleme atof() : disparition du "point" [Résolu]

Signaler
Messages postés
2
Date d'inscription
samedi 6 mars 2010
Statut
Membre
Dernière intervention
8 mars 2010
-
Messages postés
2
Date d'inscription
samedi 6 mars 2010
Statut
Membre
Dernière intervention
8 mars 2010
-
Bonjour a tous, j'ai un petit problème auquel je n'arrive pas a trouver de solution... Pourtant j'ai cherché...

j'ai un fichier texte dont les lignes sont de ce type:
|41.8|48.7|1|12.8 etc...
je veux récupérer les flotants entre les "|"

j'ouvre mon fichier avec ifstream
j'arrive en utilisant les fonction find et substr a séparer les flottants des "|".

Le probleme est que, par exemple si j'ai stocké dans la string s la valeur 12.48


" cout<<s.c_str()<<endl; " me donne bien 12.48
MAIS " cout<<atof(s.c_str())<<endl; " me donne 12 ????????

j'ai vérifié dans un petit programme test que cout permet bien d'afficher un flotant avec les decimales... c'est OK.

Je ne vois donc pas ce qui cloche... le "." a plusieurs "visages" dans un chaine de caractère??

Merci de votre aide!
A voir également:

2 réponses

Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
14
Bienvenue,

En france, le séparateur de décimal est la virgule ",", pas le point "."... C'est horrible, mais c'est comme ça.

SetLocale devrait corriger le tir. Documentée ici.
Messages postés
2
Date d'inscription
samedi 6 mars 2010
Statut
Membre
Dernière intervention
8 mars 2010

Super !! cette fonction a bien résolu mon probleme...
Merci beaucoup rt15!