pb avec la fonction isspace
bonjour, je veux lire mon fichier d'input. Dans ce fichier, je saute des lignes. Voici une partie du fichier d'input :
Code:
1 2 3 4
|
NBPAR 40 ! numbers of particles
! initial conditions |
voici mon main
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
|
#include<stdlib.h>
#include<stdio.h>
#include<string.h>
int str_isspace(const char * s)
{
/* return 1 if all the char of the string s are some blanck char, 0 otherwise */
while (isspace (*s++));
return !*s;
}
int main()
{
FILE * file=fopen("input.txt","r");
if(file==NULL)
{
printf("erreur\n");
exit(EXIT_FAILURE);
}
char line[1000];
while(fgets (line, sizeof line, file) != NULL)
{
printf("line = %s ==> %d\n",line,str_isspace(line));
}
return(EXIT_SUCCESS);
} |
et voici ma sortie :
Code:
1 2 3 4 5 6 7
|
line = NBPAR 40 ! numbers of particles
==> 0
line =
==> 0
line = ! initial conditions
==> 0 |
normalement, la seconde ligne (== la ligne blanche), j'aurais du avoir un 1 non ?
le man isspace dit :
Citation:
vérifie si l'on a un caractère blanc, d'espacement. Dans les
localisations "C" et "POSIX" il s'agit de: espace, saut de page
(form-feed, '\f'), saut de ligne (newline, '\n'), retour chariot
(carriage return, '\r'), tabulation horizontale ('\t'), et tabu-
lation verticale ('\v').
savez-vous où se trouve la coquille ?
Merci