Bonsoir![]()
Et bien voilà, j'ai débuté le C hier soir parce qu'après l'apprentissage de divers langages tel que XHTML, CSS, Javascript, PHP, etc... je me suis dit : "Et si j'apprenais à bien programmer ?"![]()
Du coup, j'ai acheté le K&R et j'entreprends les divers exercices...
Arrivé à l'exo 1.6, on me demande de vérifier que l'expression getchar() != EOF vaut soit 0 soit 1. J'avoue, je n'ai pas trouvé seulet ai eu besoin de me reporter à la solution qui est :
le code du chapitre associé étant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14 #include <stdio.h> /** * Copie l'entrée sur la sortie; seconde version */ main() { int c; while(c = getchar() != EOF) printf("%d\n", c); printf("%d - pour EOF\n", c); }
J'étais parti sur des if mais ça me sortait ma phrase avec quelques lettres en moins...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 #include <stdio.h> /** * Copie l'entrée sur la sortie; seconde version */ main() { int c; while((c = getchar()) != EOF) putchar(c); }![]()
Le résultat attendu est apparemment d'avoir des 1 lorsque la fin de fichier n'est pas atteinte et un 0 lorsque c'est le cas. Mon soucis, c'est que la solution ne me donne pas ce 0. J'obtiens cinq 1 lorsque je tape "test" puis "entrée". Je suppose le "entrée" génère le cinquième 1 mais où se trouve donc le 0 ?
Ce qui me semble flou, c'est que je ne suis pas dans un fichier mais en train de taper tout cela dans mon invite de commande donc peut-être est-ce normal...
Je précise qu'à l'heure actuelle, je suis encore sous Windows et que je me sers du logiciel Dev-C++ pour faire tout ça...
Voilà, vous l'avez compris, je suis super newbie en la matière mais qui ne l'a pas été un jour ?![]()
Au plaisir de vous lire...
Partager