Bonjour,

J’ai un problème lorsque je cherche à lire une série de données stockes dans un fichier .dat

Ces donnes sont écrites de la manière suivante :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
for(i=0;i<n;i++) fprintf (fichier, "%f",myfloat[i]);
donc finalement on obtient dans le fichier
1.0000001.0000001.000000(...)1.0000000

Et lorsque je cherche à lire le premier float,
avec
Code : Sélectionner tout - Visualiser dans une fenêtre à part
fscanf(fichier,”%f”,myfloat[i]);
je lis 1.0000001 (a la place de 1.000000) donc le suivant sera lu .0000001 et non 1.000000

Je vois bien une solution pour résoudre le problème mais ca me parait bien complique

(-convertir le premier float en string, supprimer le dernier élément de la chaine (1), convertir la chaine en float, supprimer le premier float du fichier et on recommence)

Il doit bien y avoir un moyen bien plus simple non ?

Sinon dans le même genre, si j’obtiens la taille de mon fichier avec la fonction stat
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
tailleenoctet=(int)buf.st_size ; /* j’ai bien la taille en octet, donc logiquement si je veux le nombre de valeur je fais:*/
nombredepoint=tailleenoctet/sizeof(float) ; /* et la le résultat est incorrect, alors qu’avec sizeof(double) le résultat est bon. Pourtant j’écris bien des float dans ce fichier ! 
(for(i=0;i<n;i++) fprintf (fichier, " %f",myfloat[i]); ) */