IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

demande explication getchar putchar


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Inscrit en
    Février 2013
    Messages
    6
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 6
    Par défaut demande explication getchar putchar
    Bonjour,

    je suis sur les entrées et sorties de caractères

    voici le programme que je dois écrire
    cc getchar.c
    puis a.exe
    je compile puis j’exécute

    il ne se passe rien je ne comprends pas mon erreur ou doit il réellement se passer quelque chose

    ensuite je dois écrire un programme vérifiez l expression getchar () !=EOF vaut soit 0 soit 1

    je n 'y arrive pas

    mon programme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #include <stdio.h>
    main ()
    {
    int c;
    while (( c = getchar () ) != EOF )
    putchar (c);
    }
    merci pour vos réponses

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 835
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 835
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par minixave Voir le message
    Bonjour,

    je suis sur les entrées et sorties de caractères

    voici le programme que je dois écrire
    cc getchar.c
    puis a.exe
    je compile puis j’exécute

    il ne se passe rien je ne comprends pas mon erreur ou doit il réellement se passer quelque chose


    mon programme

    #include <stdio.h>
    main ()
    {
    int c;
    while (( c = getchar () ) != EOF )
    putchar (c);
    }
    merci pour vos réponses
    Salut
    Déjà mets ton programme entre balises quotes =>

    Ensuite il serait bon que tu comprennes ce que tu fais. getchar() va récupérer un caractère dans le buffer clavier (nommé stdin). Or, si ce buffer est vide, la fonction renvoie la valeur spéciale EOF.
    Ici tu boucles tant que getchar() n'a pas renvoyé EOF. Et si c'est le cas, tu renvoies à l'écran le caractère lu. Ben si tu n'as rien, ça veut dire que tu n'es pas entré dans la boucle donc getchar() a renvoyé EOF donc que c'est parce que ton clavier est vide

    Si tu veux quelque chose, faut que tu remplisses ton clavier.
    Si t'es sous Linux, tapes ls -l | ton_programme Si t'es sous zindow, tapes dir | ton_programme et là tu verras le résultat...

    Citation Envoyé par minixave Voir le message
    ensuite je dois écrire un programme vérifiez l expression getchar () !=EOF vaut soit 0 soit 1

    je n 'y arrive pas
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    c=getchar();
    if ((c != EOF) == 0) || ((c != EOF) == 1)
       ...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    Ou simplement en tapant des choses au clavier et en faisant CRTL+D pour générer un EOF.

    Ou également en faisant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "Bonjour" | ./mon_programme.exe

  4. #4
    Expert confirmé
    Avatar de diogene
    Homme Profil pro
    Enseignant Chercheur
    Inscrit en
    Juin 2005
    Messages
    5 761
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Enseignant Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 761
    Par défaut
    Citation Envoyé par Sve@r
    Or, si ce buffer est vide, la fonction renvoie la valeur spéciale EOF.
    Non, la fonction reste en attente d'une entrée clavier
    Citation Envoyé par Bktero
    et en faisant CRTL+D pour générer un EOF.
    Cela dépend de l'OS. Sous windows, c'est <CTRL>z <return> sauf erreur de ma part
    Citation Envoyé par minixave
    il ne se passe rien
    Le processus a lieu en deux étapes : Tu tapes des caractères au clavier, il sont placés et restent en attente dans le buffer clavier. Ils ne seront transférés au programme que lorsque tu termines la ligne par la touche <return>. Alors le programme va lire le premier caractère dans le buffer et l'afficher, puis le second, etc. jusqu'au dernier présent dans le buffer (qui est le '\n'). Le buffer clavier est alors vidé.
    Sur l'écran, tu vois donc la reproduction de la ligne que tu as tapée. Et on peut recommencer avec un nouvelle ligne.

    Pour quitter cette boucle, il te faut entrer une ligne correspondant au EOF de ton OS.

  5. #5
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 493
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 493
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par diogene Voir le message
    Cela dépend de l'OS. Sous windows, c'est <CTRL>z <return> sauf erreur de ma part
    Pour changer, tu as raison : http://c.developpez.com/faq/?page=cl...ecran#CONS_EOF

Discussions similaires

  1. Demande explication sur 1 CSS
    Par tigunn dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 02/03/2007, 17h27
  2. Demande explications classes interfaces
    Par schnito dans le forum Langage
    Réponses: 17
    Dernier message: 10/10/2006, 04h44
  3. Getelementbyid : Demande explication :D
    Par trihanhcie dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 11/07/2006, 16h15
  4. Demande explication sur un composant ADO
    Par Golork dans le forum Bases de données
    Réponses: 3
    Dernier message: 17/07/2005, 20h22
  5. [AWT] Demande Explications prog calculatrice
    Par smag dans le forum Débuter
    Réponses: 3
    Dernier message: 07/07/2005, 16h06

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo