convertir un tableau de char en double
Bonjour à tous,
Actuellement je cherche à convertir un tableau de char en double à défaut de savoir stocker directement un double depuis une lecture de fichier.
Avec le compilateur gcc et la fonction atof la conversion char vers double fonctionne très bien.
Avec gcc++, ça marche moins bien apparemment.
Je souhaite convertir cette chaine de caractère en double : 335.677250. J'obtiens 335,000000 après être passé par la fonction atof ou strtod.
Code:
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 38 39
|
#include <iostream>
#include <string>
#include <fstream>
#include <stdio.h>
using namespace std;
//char nomfich[21];
char donnee[100];
char donnee_stock[100][100];
double don;
int n=0;
FILE * entree;
entree = fopen ("test.txt","r");
do
{ fseek (entree,12,SEEK_CUR);
fread (donnee,11,1,entree); //normalement position 23
strcpy(donnee_stock[n],donnee);
n++;
}
while( !feof(entree));
fclose(entree);
//on affiche la chaine de caractère
std::cout << donnee_stock[0] << endl;
//conversion de la chaîne de caractère en double
//don = std::atof(donnee_stock[1]);
don = strtod(donnee_stock[0],NULL);
//affichage en double incorrecte 335,000000
cout.precision(6);
std::cout << fixed << don << std::endl; |