Bonjour, je suis actuellement en train d’apprendre le langage C en utilisant le livre Language C (K&R).
Je bloque déjà sur un problème certainement assez simple :
Je cherche à afficher le nombre de caractère d’entré en sortie en utilisant une simple incrémentation :
Malheureusement, ce code ne marche pas. Je pense que le problème vient de EOF qui me sort de la boucle. En faisant des recherches, J’ai trouvé un autre code qui fonctionne très bien :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 #include <stdio.h> int main() { printf("Please enter a sentence:"); long nc; nc=0; while(getchar()!=EOF) ++nc; printf("number of character: %ld\n",nc); }
Sur ce programme la condition sur la boucle est ‘\n’ au lieux de EOF. J’ai donc essayer de remplacer cette condition dans le premier programme et vice versa ce qui résolve mon problème.
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 #include <stdio.h> #include <stdlib.h> int main(void){ printf("Please enter a sentence:"); fflush(stdout); char c; int nc=0; c=getchar(); while (c !='\n') { nc++; c=getchar(); } printf("number of character: %d\n",nc); return EXIT_SUCCESS;
Quelqu’un serait-il en mesure de m’expliquer pourquoi la condition de EOF ne marche pas dans ces programmes ?
Dans le livre de K&R ils utilisent EOF donc cela doit marcher =).
Merci pour votre aide.
Partager