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 :

Explication putchar getch


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Par défaut Explication putchar getch
    Salut,
    Je test ce code mais il se comporte assez étrangement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
        char chaine[20];
        char cv1;
     
       /* printf("Chaine ");
        scanf("%s",chaine); //Taper ATSA ela
        printf("%s",chaine+2);
        scanf("%s",chaine+1); //Taper EHa 
        printf("%s",chaine);*/
     
        cv1=getch();/*Taper F6*/
        putchar(cv1);
    	getch();
    Le premier scanf prend uniquement le ATSA ensuite le printf affiche SAela ensuite le scanf retient ha donc ça fait SAelaha

    Pour le getch quand j'appuis sur F16 rien n'apparaît sur ma console qu'est-ce que putchar devrait retourner un numéro relatif à la touche F6 ?
    merci

  2. #2
    Membre Expert Avatar de fregolo52
    Homme Profil pro
    Développeur C
    Inscrit en
    Août 2004
    Messages
    2 366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Août 2004
    Messages : 2 366
    Par défaut
    getch() n'est pas standard, perso je ne l'utilise uniquement comment fonction "Veuillez appuyer sur une touche pour débloquer l'exécution".

  3. #3
    Membre très actif
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Par défaut
    Ma question n'était pas ça que getch ne soit pas standard je le sais , je parlais simplement si getch dans ce cas là retourne le numéro de F6 parce que chez moi la console n'affiche rien c'est normal ?

  4. #4
    Membre Expert Avatar de fregolo52
    Homme Profil pro
    Développeur C
    Inscrit en
    Août 2004
    Messages
    2 366
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur C

    Informations forums :
    Inscription : Août 2004
    Messages : 2 366
    Par défaut
    bah je n'en sais rien, mais le lien que je t'ai donné montre que la gestion des touches Fxx est spéciale vu qu'il faut 2 getch.

    F6 n'est pas un caractère, donc c'est normal que ça n'affiche rien.

  5. #5
    Membre émérite Avatar de valefor
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    711
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 711
    Par défaut
    Citation Envoyé par Johnny P. Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
        char chaine[20];
        char cv1;
     
       /* printf("Chaine ");
        scanf("%s",chaine); //Taper ATSA ela
        printf("%s",chaine+2);
        scanf("%s",chaine+1); //Taper EHa 
        printf("%s",chaine);*/
     
        cv1=getch();/*Taper F6*/
        putchar(cv1);
    	getch();
    Cela donne en fait Le premier scanf ne prend qu'un mot (le manuel dit "The input string stops at white space or at the maximum field width, whichever occurs first.") et le second prend le suivant (donc tu ne peux pas taper EHa en fait).

    De plus quand tu affiche "chaine + 2", tu affiche le mot saisi à partir du deuxième caractère. Quand tu fais un scanf avec "chaine + 1" tu écrases le mot précédent à partir du premier caractère. Je ne pense pas que ce soit le comportement voulu.

    Il faudrait que tu nous dises le comportement que tu attends, et que tu définisse bien les formats de saisie (par exemple une première saisie qui comporte exactement deux mots, puis une suivante qui en comporte exactement un, etc.).

Discussions similaires

  1. demande explication getchar putchar
    Par minixave dans le forum Débuter
    Réponses: 4
    Dernier message: 07/03/2013, 11h27
  2. getch() avec gcc
    Par Jorus dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 16/12/2002, 14h47
  3. Explication procédure stockée
    Par underworld dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 09/09/2002, 10h51
  4. Recherche code d'un fifo,ou explication
    Par don-diego dans le forum C
    Réponses: 8
    Dernier message: 25/07/2002, 10h26
  5. recherches des cours ou des explications sur les algorithmes
    Par Marcus2211 dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 19/05/2002, 22h18

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