Getchar, putchar en c

Résolu
limbergh Messages postés 669 Statut Membre -  
ossamados Messages postés 5 Statut Membre -
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

6 réponses

lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570
 
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
limbergh Messages postés 669 Statut Membre 140
 
merci
0
limbergh Messages postés 669 Statut Membre 140
 
merci
0
les binomes²
 
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ossamados Messages postés 5 Statut Membre
 
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
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité 3 570
 
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
ossamados Messages postés 5 Statut Membre
 
Merci => lami20j
0
ossamados Messages postés 5 Statut Membre
 
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