Bonjour, je vous présent ici la fonction de lecture d'un fichier contenant des notes de plusieurs élèves d'un classe présenté sous cette forme :

ADRIEN;8.000000;7.000000;6.000000;2.000000;5.000000;
MICHELLE;10.000000;11.000000;12.000000;13.000000;14.000000;
VALENTINE;8.000000;6.000000;48.000000;64.000000;5.000000;

mon code :

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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
void RECUPERATION()
 
{   FILE *p;
    char groupe[100], ligne[100]={0}, eleve[50]={0}, notecar [5][50]={0};
    char *token, test;
    int i=0, compare=1;
 
    printf("Saisir le nom du groupe : \n");
    scanf("%s", groupe);
 
    p=fopen(groupe, "r");
 
    if(p==NULL)
    {
        printf("erreur");
    }
    else
    {
rewind(p);
            printf("NOM de l'eleve :");
            scanf("%s", eleve);
            printf("%s", eleve);
 
            do
            {
                fgets(ligne, 100, p);
                printf("La ligne est : %s\n", ligne);
 
                token = strtok(ligne, ";"); //séparation de la chaine
 
                while(token != NULL)
                {
                    strcpy(notecar[i], token);//copie de token dans le tableau note
                    printf("le token est : %s\n", token);
                    i++;
                    token = strtok(NULL, ";");
 
                }
 
                compare=strcmp(notecar[0], eleve);
            }
            while(compare!=0 && !feof(p));
 
printf("%s", eleve);
 
    }
    fclose(p);
 
}
Ce code ne fonctionne pas tous d'abord, mon tableau notecar[] ne stock pas les nouvelles ligne, le tableau eleve[] est modifié a la fin alors que je ne modifie pas sa valeur au cours du programme (après le scanf) et aussi ma boucle while ne fonctionne pas comme prévu. Voila merci pour votre aide