salut à tous, j'ai une erreur très étrange, j'ai deux fonctions :
TraitementSMS et DetermineTypeBoitier

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
void TraitementSMS() 
{
char *LigneLue;   // Contient la ligne lue du fichier texte
char TypeBoitier; // Contient la lettre qui détermine le type de boitier
 
    LigneLue = (char*)malloc(sizeof(char));
 
    //---Déclarations et initialisations des données---//
    TypeBoitier = DetermineTypeBoitier();
 
    //---Ouverture du fichier de données---//
    FILE *f = NULL;
    f = fopen("CompteurP.txt","r");   
    if(f == NULL)
    {
      perror("fopen");
      exit(EXIT_FAILURE);
    } 
 
    fgets(LigneLue,100,f);
    printf("%s",LigneLue);
fclose(f);
et

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
char DetermineTypeBoitier()
{
 //---Déclarations et initialisations des variables---//
    char *pointeur;
    char LigneLue[100];
 
    int NbLigne = 0;
 
    FILE *fp;
 
    //---Ouverture du fichier de données---//
    fp = fopen("CompteurP.txt","r");
    if(fp == NULL)
    {
     perror("fopen");
     exit(EXIT_FAILURE);
    }
 
    //---On lit les 2 premières lignes du fichier---//
    while(NbLigne <2)
    {          
        fgets(LigneLue,100,fp);
        NbLigne++;
    }
fclose(fp);
}
Le problème est que pour la fonction DetermineTypeBoitier, la fonction fgets fonctionne très bien, le résultat obtenu est correct. Ensuite je réouvre le même fichier, je refais fgets et là l'exécution du programme plante. De plus, à l'origine un autre programme utilisait ces fonctions qui marchaient très bien, donc je trouve cela bien étrange...