Programme boucle ne détecte pas la fin de fichier
je suis débutante je programme via code blocks sous window vista professionnel.
j'execute le programme, qui compte les mots, ci-dessous via "run" de code bloks et je m'attends à ce qu'il
affiche 0 0 0 hors il ne fait rien du tout , et lorsque je debug toujours via code bloks
il reste dans la boucle while et semble attendre quelque chose du clavier , alors que je
m'attendait à ce qu'il détecte de suite la fin de fichier et qu'il aille au printf, n'est-ce pas?
merci d'avance pour votre aide
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
| #include <stdio.h>
int main()
{
#define DEHORS 0
#define DEDANS 1
int c , nl, nm, nc , etat;
etat=DEHORS;
nl=nm=nc=0;
while ((c=getchar()) != EOF){
++nc;
if (c=='\n')
++nl;
if (c == '\n' || c == ' ' || c== '\t')
etat =DEHORS;
else if (etat==DEHORS)
{etat=DEDANS;
++nm ;
}
}
printf("%d %d %d\n", nl, nm, nc);
} |