begin process at 2012 05 29 19:28:08
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Linux

 > 

Fichier & Disque

 > 

Nombre très petit


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Nombre très petit

samedi 29 août 2009 à 15:00:38 | Nombre très petit

foufoudukb

Bonjour à tous!

voilà, je cherche à récupérer des données dans un fichier. En apparence cela fonctionne mais le problème est que le programme me restitue des valeurs nulles.

le fichier:

Code :
0 0 5.4677413708901399e-21  6.1629280163583291e-10 -1.8675539443510087e-08 -1.4376436966629364e-09 -1.0165676068404582e-09 9.5920309764935507e-08 1.3409310171423860e-08 -9.8103553820712559e-08 1.6700950977027665e-01 2.7545671247358211e-01 2.3631940933620285e-01 7

1 1 5.4677413708901399e-21 6.1629280163583291e-10 -1.8675539443510087e-08 -7.1882184833146822e-10 1.0165676068404582e-09 -1.1479772421251265e-07 -4.2957549261064850e-08 -8.1699725998753296e-08 1.6700950977027665e-01 2.7545671247358211e-01 2.3631940933620285e-01 7
2 2 5.4677413708901399e-21 6.1629280163583291e-10 -1.8053021462059751e-08 -1.0782327724972023e-09 2.0331352136809163e-09 7.1337038353823335e-08 1.1621730590288293e-07 -6.3454363116272094e-08 1.6700950977027665e-01 2.7545671247358211e-01 2.3631940933620285e-01 7
3 3 5.4677413708901399e-21 6.1629280163583291e-10 -1.8675539443510087e-08 -6.9764539423897233e-26 -3.8103880608912019e-26 -1.0564174286329797e-07 -1.9969443185454099e-08 -5.1551764268691882e-08 1.6700950977027665e-01 2.7545671247358211e-01 2.3631940933620285e-01 7
4 4 5.4677413708901399e-21 6.1629280163583291e-10 -1.8053021462059751e-08 3.5941092416573406e-10 1.0165676068404582e-09 -2.4644442897051527e-08 7.1312559274198991e-08 -3.7333375606978057e-08 1.6700950977027665e-01 2.7545671247358211e-01 2.3631940933620285e-01 7
5 5 5.4677413708901399e-21 6.1629280163583291e-10 -1.8675539443510087e-08 7.1882184833146801e-10 -1.0165676068404582e-09 2.9143237641006431e-08 7.9770005201165439e-08 8.5922127699931214e-08 1.6700950977027665e-01 2.7545671247358211e-01 2.3631940933620285e-01 7
6 6 5.4677413708901399e-21 6.1629280163583291e-10 -1.8053021462059751e-08 1.0782327724972023e-09 -3.8103880608912019e-26 8.6467787569492357e-08 -1.1451866836660767e-07 -6.6975190460113780e-08 1.6700950977027665e-01 2.7545671247358211e-01 2.3631940933620285e-01 7
7 7 5.4677413708901399e-21 6.1629280163583291e-10 -1.8675539443510087e-08 1.4376436966629364e-09 1.0165676068404582e-09 7.5332666471416223e-08 -6.6398484637040290e-08 -9.5962986901924308e-08 1.6700950977027665e-01 2.7545671247358211e-01 2.3631940933620285e-01 7
8 8 5.4677413708901399e-21 6.1629280163583291e-10 -1.8053021462059751e-08 1.0782327724972023e-09 2.0331352136809163e-09 8.6748130098379620e-08 5.8946114243673519e-08 1.0044842357823964e-07 1.6700950977027665e-01 2.7545671247358211e-01 2.3631940933620285e-01 7
9 9 5.4677413708901399e-21 6.1629280163583291e-10 -1.8053021462059751e-08 1.7970546208286704e-09 -1.0165676068404582e-09 -2.8455088597299312e-08 -7.4506352571070326e-08 -4.8333106498504361e-08 1.6700950977027665e-01 2.7545671247358211e-01 2.3631940933620285e-01 7
10 10 5.4677413708901399e-21 6.1629280163583291e-10 -1.7430503480609415e-08 -2.1564655449944045e-09 -3.8103880608912019e-26 -8.4017580355249023e-08 6.5152931231895402e-08 -2.9699979489055341e-08 1.6700950977027665e-01 2.7545671247358211e-01 2.3631940933620285e-01 7
11 11 5.4677413708901399e-21 6.1629280163583291e-10 -1.8053021462059751e-08 -1.7970546208286704e-09 1.0165676068404582e-09 3.8019181028685855e-08 4.2424208525570272e-09 -3.6649778234832707e-08 1.6700950977027665e-01 2.7545671247358211e-01 2.3631940933620285e-01 7
12 12 5.4677413708901399e-21 6.1629280163583291e-10 -1.8053021462059751e-08 -1.0782327724972023e-09 -2.0331352136809163e-09 -7.5687735578346818e-08 8.8670810431535956e-08 -5.1149870483631126e-08 1.6700950977027665e-01 2.7545671247358211e-01 2.3631940933620285e-01 7
13 13 5.4677413708901399e-21 6.1629280163583291e-10 -1.7430503480609415e-08 -1.4376436966629364e-09 -1.0165676068404582e-09 -5.3100107709132043e-08 7.2616851496190110e-08 -9.0955469466501440e-08 1.6700950977027665e-01 2.7545671247358211e-01 2.3631940933620285e-01 1



Résultat du programme:
Code :
48 0 0.0000000 0.000000000000 0.00000000000 .... que des 0. 


Ce qui impact sur les calculs! Comment faire? Merci bcp.

Code C/C++ :
FILE *file_stream;

file_stream = fopen(file,"r");
if(file_stream == NULL)
{
printf("Le fichier ne s'est pas ouvert!\n");
}
else
{
printf("Ouverture du fichier reussie!\n");
printf("Lecture du fichier %s\n",file);

while(!feof(file_stream))
{
fscanf(file_stream,"%c %c %s %s %s %s %s %s %s %s %s %s %s",
&v.i11[i],&v.i12[i],&v.M1[i],&v.R1[i],&v.x1[i],&v.y1[i],&v.z1[i],&v.vx1[i],
&v.vy1[i],&v.vz1[i],&v.sx1[i],&v.sy1[i],&v.col1[i]) ;
if(i==0)
{
printf("%d %d %.20f %.20f %.20f %.20f %lf %lf %lf %lf %lf\n",v.i11[0],v.i12[0],v.M1[0],v.R1[0],v.x1[0],v.y1[0],v.z1[0],v.vx1[0],v.vy1[0],v.vz1[0],v.sx1[0],v.sy1[0],v.col1[0]);
};
v.comx += v.M1[i]*v.x1[i];
v.comy += v.M1[i]*v.y1[i];
v.comz += v.M1[i]*v.z1[i];
v.tMass += v.M1[i];
i++;
}

if(fclose(file_stream))
{puts("Fichier ferme!");};



samedi 29 août 2009 à 23:59:07 | Re : Nombre très petit

juju12

Lors de l'appel fscanf(), tu récupères des chaînes de caractères (%s) et pas des flottants.

dimanche 30 août 2009 à 00:24:55 | Re : Nombre très petit

foufoudukb

ok merci ça marche mieux mais c'est pas encore ça:

Code C/C++ :

fscanf(file_stream,"%c %c %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf %lf",
&v.i11[i],&v.i12[i],&v.M1[i],&v.R1[i],&v.x1[i],&v.y1[i],&v.z1[i],&v.vx1[i],
&v.vy1[i],&v.vz1[i],&v.sx1[i],&v.sy1[i],&v.col1[i]) ;


j'obtiens:
Code :
48 0 0.0000000000 0.0000000000000000...001 0.0000000000061629 -0.00000000000000000186 -0.00000000 -0.000000000000 ... et des 0


dans le fichier il y a:

Code :
0 

0
5.4677413708901399e-21 6.1629280163583291e-10 -1.8675539443510087e-08 -1.4376436966629364e-09 -1.0165676068404582e-09 9.5920309764935507e-08
1.3409310171423860e-08 -9.8103553820712559e-08 1.6700950977027665e-01
2.7545671247358211e-01
2.3631940933620285e-01
7


je sais pas pourquoi il y a 48, certaines valeurs obtenues sont bonnes comme la 5e et 6e, mais sinon c'est pas bon. Elles sont nulles!




Cette discussion est classée dans : 4677413708901399e, 1629280163583291e, 6700950977027665e, 7545671247358211e, 3631940933620285e


Répondre à ce message

Sujets en rapport avec ce message



Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,078 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales