Getchar putchar

Fermé
limbergh Messages postés 658 Date d'inscription dimanche 8 juillet 2007 Statut Membre Dernière intervention 29 juin 2010 - 13 janv. 2008 à 10:58
limbergh Messages postés 658 Date d'inscription dimanche 8 juillet 2007 Statut Membre Dernière intervention 29 juin 2010 - 13 janv. 2008 à 13:08
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 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
13 janv. 2008 à 11:07
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 658 Date d'inscription dimanche 8 juillet 2007 Statut Membre Dernière intervention 29 juin 2010 140
13 janv. 2008 à 11:12
#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 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
13 janv. 2008 à 11:22
#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 658 Date d'inscription dimanche 8 juillet 2007 Statut Membre Dernière intervention 29 juin 2010 140
13 janv. 2008 à 11:34
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 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
13 janv. 2008 à 11:40
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 658 Date d'inscription dimanche 8 juillet 2007 Statut Membre Dernière intervention 29 juin 2010 140
13 janv. 2008 à 12:47
salut,
chez moi ça ne marche pas...
Merci quand même pour ton dévouement...

A bientôt


Limbergh
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
13 janv. 2008 à 12:51
Re,

alors affiche ce que tu fait
compilation, exécution
pour voir les erreurs ;-)
0
limbergh Messages postés 658 Date d'inscription dimanche 8 juillet 2007 Statut Membre Dernière intervention 29 juin 2010 140
13 janv. 2008 à 12:57
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 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
13 janv. 2008 à 13:03
et si tu fait Ctrl+D
0
limbergh Messages postés 658 Date d'inscription dimanche 8 juillet 2007 Statut Membre Dernière intervention 29 juin 2010 140
13 janv. 2008 à 13:05
meme chose il me met cça à l'écran

^D
0
limbergh Messages postés 658 Date d'inscription dimanche 8 juillet 2007 Statut Membre Dernière intervention 29 juin 2010 140
13 janv. 2008 à 13:06
je comprend vraiment pas pourquoi ça marche pas
en principe il n'y a rien de compliqué la-dedans;...
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
13 janv. 2008 à 13:06
et si ensuite tu appuie sur la touche ENTREE
0
limbergh Messages postés 658 Date d'inscription dimanche 8 juillet 2007 Statut Membre Dernière intervention 29 juin 2010 140
13 janv. 2008 à 13:08
rien il prend ça pour une ligne
0