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é seul et ai eu besoin de me reporter à la solution qui est :
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);
}
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
#include <stdio.h>
 
/**
* Copie l'entrée sur la sortie; seconde version
*/
 
main()
{
  int c;
 
  while((c = getchar()) != EOF)
          putchar(c);
}
J'étais parti sur des if mais ça me sortait ma phrase avec quelques lettres en moins...

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...