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 :
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
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
1 2 3 4
|
tailleenoctet=(int)buf.st_size ; /* jai 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 quavec 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]); ) */ |
Partager