Bonjour,

Je n'arrive pas à faire un simple comptage de ligne d'un fichier CSV.
Cela tourne en boucle jusqu'à l'erreur "Stack overflow" ! Je ne comprends pas pourquoi.
Est-il possible que l'EOF ne soit pas présent dans mon fichier ?

Voici 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
long getCSVNbLines(FILE * file)
{
    long lignei = 0;
 
    if (file != NULL)
    {
        //while ((getc(file)) != EOF) {
        while (!feof(file))
        {
            if ((getc(file)) =='\n')
            {
                lignei++;
            }
        }
        printf("Nombre de ligne du fichier: %d\n", lignei+1);
    }
    else
    {
        printf("ERROR: Le fichier est impossible à ouvrir !\n");
        printf("Code erreur %d \n", errno);
        return(0);
    }
    return (lignei);
}
 
int main (void)
{
    char monFichier[]="InputData1.csv";
    FILE * file  = NULL;
    long nbLignes = 0;
 
    // Ouverture du fichier CSV
    file = fopen (monFichier, "r");
 
    // Calcul du nombre de ligne du fichier ouvert
    nbLignes = getCSVNbLines(file);
 
    // Fermeture du fichier ouvert
    fclose (file);
}
Quelqu'un a-t-il une idée ?...

Voici un exemple du contenu du fichier InputData1.csv:

0,99112756;0,000123995;0,000143696;0,000061779
0,997749815;0,00003449;0,000035545;0,00001785
1;0;0;0
1;1
1,5;1
0;1
95;0,973
105;0,976