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
et le code de recuperation dans le fichier txt
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 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; }
merci d'avance pour votre aide
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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);
Partager