problème de recuperation avec double et sscanf
Bonjour à tous
pour un projet de calcul de moyenne j'ai decidé de stocker mes enregistrements dans un fichier afin de pouvoir les recuperer à tout moment à partir du code.
cependant en voulant recuperer j'ai un problème avec la commande sscanf et mes moyennes de type double. sscanf retourne toujours 0.0000 quelque soit la valeur réelle de la moyenne obtenue
voici le format des lignes de mon fichier 12 || Gabriel || jesus || 18.000000 ||
ci joint mon code d'insertion dans le fichier txt
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
|
while(tmp != NULL){
if(fichier!=NULL)
{
fprintf(fichier,"%s || ",tmp->numero);
printf("%s || ",tmp->numero);
fprintf(fichier,"%s || ",tmp->nom);
printf("%s || ",tmp->nom);
fprintf(fichier,"%s || ",tmp->prenom);
printf("%s || ",tmp->prenom);
if(tmp->eval == NULL){
fprintf(fichier,"aucune note ||\n");
printf("aucune note ||\n");
fclose(fichier);
}
else{
fprintf(fichier,"%lf ||\n",tmp->moyenne);
printf("%lf ||\n",tmp->moyenne);
fclose(fichier);
}
}
tmp = tmp->suivant;
} |
et le code de recuperation dans le fichier txt
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
fichier = fopen("ess.txt","rt");/*ouverture du fichier*/
if (fichier != NULL)/*si fichier existe*/
{
while (fgets(ligne,50, fichier) != NULL)
{
if (sscanf(ligne,"%s%*s%s%*s%s%*s%lf%*s",&res[0],&res[1],&res[2],&moy1[0])==4)
{
printf("%lf \n",&moy1[0]);
printf("%s %s %s %lf \n",&res[0],&res[1],&res[2],&res1[0]);
}}
fclose(fichier); |
merci d'avance pour votre aide