J'ai lu dans le livre du langage de programmation C de Dennis Ritchie qui intdoit être utilisé pour qu'une variable contienne EOF - pour la rendre suffisamment grande pour qu'elle puisse contenir une valeur EOF - non char. Mais le code suivant fonctionne bien:
#include<stdio.h>
main() {
char c;
c=getchar();
while(c!=EOF) {
putchar(c);
c=getchar();
}
}
Lorsqu'il n'y a plus d'entrée, getcharrenvoie EOF. Et dans le programme ci-dessus, la variable c, de type char, est capable de la maintenir avec succès.
Pourquoi ça marche? Selon l'explication dans le livre mentionné ci-dessus, le code ne devrait pas fonctionner.
0xff. Le stockage du résultat de getchar()dans intrésout ce problème. Votre question est essentiellement la même que la question 12.1 de la FAQ comp.lang.c , qui est une excellente ressource. (En outre, cela main()devrait l'être int main(void), et cela ne ferait pas de mal d'en ajouter un return 0;avant la clôture }.)