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:
Quelqu'un a-t-il une idée ?...
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); }
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
Partager