Pas de EOF détecté ! Stack overflow !
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. :calim2:
Est-il possible que l'EOF ne soit pas présent dans mon fichier ?
Voici mon code:
Code:
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