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 : 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
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;
Partager