Getchar putchar

limbergh Messages postés 669 Statut Membre -  
limbergh Messages postés 669 Statut Membre -
Bonjour,
je ne comprend pas trop bien ce script, si quelqu'un sait me l'expliquer....

#include <stdio.h>

main ()
{
int c;

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

system (pause);
return 0;

que represente putchar et getchar.

Meric d'avance

13 réponses

lami20j Messages postés 21644 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Salut,

Tant Que le caractère lu depuis l'entrée standard (le clavier) est différent de caractère FinDeFichier (Ctrl-C sous Windows)
affiche le caractère

getchar lit le caracère entré
putchar affiche le caractère entré
0
limbergh Messages postés 669 Statut Membre 140
 
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
int c, nl;
nl=0;

while ((c=getchar()) !=EOF)
if (c=='\n')
nl++;

printf("%d\n", nl);

system("PAUSE");
return 0;
}

Merci pour ta rponse, et si tu peux m'aider içi se serait cool. J'aimerais
que ça compte le nombre de ligne et le programme ne fait rien.

Merci pour votre aide
0
lami20j Messages postés 21644 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
#include <stdio.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
    int c, nl;
    nl=0;

    while ((c=getchar()) !=EOF){
        if (c=='\n')
              nl++;
    }

    printf("%d\n", nl);

    system("PAUSE");
    return 0;
} 
0
limbergh Messages postés 669 Statut Membre 140
 
salut lami20j,
merci pour ta réponse mais le programme ne veut toujours pas compter mes lignes quand je le
fait fonctionner et je ne vois pas ou se situe l'erreur....
Meric d'avance
0

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

Posez votre question
lami20j Messages postés 21644 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Il faut taper plusierus lignes et appuyer sur Ctrl-C ou Ctrl-D (je ne sais pas sous windows)
j'ai remplacé system("PAUSE"); avec getchar(); puisque je suis sous Linux
et voici le résultat (chez moi ça fonctionne)
lami20j@debserv:~$ cat ccm.c
#include <stdio.h>
#include <stdlib.h>

int main (int argc, char *argv[])
{
  int c, nl;
  nl = 0;

  while ((c = getchar ()) != EOF){
      if (c == '\n')
        nl++;
  }

  printf ("%d\n", nl);

  getchar();
  return 0;
}
lami20j@debserv:~$ gcc ccm.c
lami20j@debserv:~$ ./a.out
ligne 1
ligne 2
ligne 3
3

lami20j@debserv:~$

0
limbergh Messages postés 669 Statut Membre 140
 
salut,
chez moi ça ne marche pas...
Merci quand même pour ton dévouement...

A bientôt

Limbergh
0
lami20j Messages postés 21644 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
Re,

alors affiche ce que tu fait
compilation, exécution
pour voir les erreurs ;-)
0
limbergh Messages postés 669 Statut Membre 140
 
donc j'ai écrit ceci

int main(int argc, char *argv[])
{
int c, nl;
nl=0;

while ((c=getchar()) !=EOF){
if (c=='\n')
nl++;
}

printf("%d\n", nl);

system("PAUSE");
return 0;
}

quand je compile, il ne me marque aucun message d'erreur mais j'ai fait comme tua as marqué
plus haut, quand je suis dans l'invité de cmd je taape mes phrase et ensuite j'ai fait ctrl-c
et ma fenetre se ferme???????
0
lami20j Messages postés 21644 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
et si tu fait Ctrl+D
0
limbergh Messages postés 669 Statut Membre 140
 
meme chose il me met cça à l'écran

^D
0
limbergh Messages postés 669 Statut Membre 140
 
je comprend vraiment pas pourquoi ça marche pas
en principe il n'y a rien de compliqué la-dedans;...
0
lami20j Messages postés 21644 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 570
 
et si ensuite tu appuie sur la touche ENTREE
0
limbergh Messages postés 669 Statut Membre 140
 
rien il prend ça pour une ligne
0