La macro EOF définie en C est une valeur spéciale renvoyée par exemple par getchar ou putchar pour signifier que la fin du fichier est atteinte ou qu'une erreur est survenue.
Sa valeur exacte ne nous regarde pas, mais ce n'est celle d'aucun char, sinon getchar serait ambigü.
Le caractère de contrôle EOF servait à marquer la fin du texte dans un fichier... texte.
Il est "déprécié", mais les fonctions de la famille "Stream I/O" en tiennent toujours compte et l'écrivent aussi.
(parenthèse)
Je viens juste d'apprendre que le comportement standard de getchar est de retourner dans un int la valeur d'un unsigned char, que char soit signé ou pas.
En toute logique, il faudrait lire comme ça ?
Code :
- //C
- unsigned char a= getchar();
- char b= *( (char *)&a );
- //C++
- char a= reinterpret_cast<char>(getchar());
|
Mais mon getchar à moi, il respecte le signage de char...
---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone