Getchar, putchar en c

Résolu
Bonjour tout le monde,

je suis débutant en"C" et je ne comprend pas getchar et putchar,
en fait lequel lit les caractères et lequel les copie?????

Meric d'avance pour vos réponses et je glisse ici le petit script dont j'ai tiré l'exemple
dans un livre sur ce langage!!!!

#include <stdio.h>
#include <stdlib.h>

int main()
{
int c;

c=getchar();
while (c!=EOF)
{
putchar(c);
c=getchar();
}

return 0;
}

Limbergh
Configuration: Windows XP
Firefox 2.0.0.11

6 réponses

  1. Modérateur
    Salut,

    getchar lit et putchar écrit
    écrit comme ça pour mieux comprendre qui lit et qui écrit
    #include <stdio.h>
    
    int main()
    {  
        int c;
    
        while ((c = getchar()) != EOF)
            putchar(c);
        return 0;
    }
    --

    lami20j
    7
    1. merci

      voici mon code qui marche aussi grâce à la bufferisation:

      int main()
      {
      int c;

      do{
      c=getchar();
      putchar(c);
      }while(c != EOF);

      return 0;
      }
      0
      1. S'il vous plait, je suis un débutant en langage C ; Je veux savoir pourquoi vous avez utilisé une variable "int" et non pas une variable "char"
        ET merci d'avance
        0
        1. Modérateur
          Salut,

          Quand il n'y aura plus de données en entrée getchar retourne une valeur particulière, il s'agit du EOF (End Of File).
          EOF n'est pas une valeur possible pour un char et c'est la raison d'utilisation de int.

          Tu peux faire un test en utilisant char pour voir.
          0
        2. Merci => lami20j
          0
      2. S'il vous plait, je suis un débutant en langage C; Je veut savoir que signifie les instructions (test1, test2 et test3) dans ce programme :

        int main()
        {char *s;
        int i=0,nmots=0,nb=0,nc=0,test1,test2,test3,ok;
        test1=*(s+i)>='a' && *(s+i)<='z';
        test2=*(s+i)>='A' && *(s+i)<='Z';
        test3=*(s+i)>='0' && *(s+i)<='9';
        Et merci d'avance
        0