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 :

recuperer la donnée sans appuyer sur enter


Sujet :

C++

  1. #1
    Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2007
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 102
    Points : 66
    Points
    66
    Par défaut recuperer la donnée sans appuyer sur enter
    Bonjour,
    J'aimerais savoir si c'est possible que le terminal récupère un caractere sans attendre que l'utilisateur appuie sur enter, ça va vraiment m'epargner un tas de problemes si ça existe.
    Merci d'avance

  2. #2
    Membre éclairé
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juin 2008
    Messages
    522
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 522
    Points : 725
    Points
    725
    Par défaut
    Eh oui ça existe:
    C'est tout
    Raphchar.

  3. #3
    Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2007
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 102
    Points : 66
    Points
    66
    Par défaut
    Citation Envoyé par raphchar Voir le message
    Eh oui ça existe:
    C'est tout
    Je l'ai testé mais ça na pas marché (du moins je l'ai pas utilisé correctement)
    voila le code de teste:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    int main()
    {
     
     
        char c;
        cout<<"caractere"<<endl;
        int key = getch();
        cin>>c;
        cout<<"votre caractere: "<<c<<endl;
        return 0;
     
    }

  4. #4
    Membre régulier Avatar de bfespi69
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2008
    Messages : 79
    Points : 72
    Points
    72
    Par défaut
    Je pense qu'il faut plutot faire comme ça

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    int main()
    {
     
     
        char c;
        cout<<"caractere"<<endl;
        c = getch();                                                  
        cout<<"votre caractere: "<<c<<endl;
        return 0;
     
    }
    enfin suis pas sur le mode console et cout cin ca remonte à loin....... mdr
    Je sais que je plais pas à tout le monde... Mais quand je vois à qui je plais pas, je m‘demande si ça me dérange vraiment.

  5. #5
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Il n'y a rien en standard qui permette de faire ça.
    La plupart des bibliothèques d'IHM permettent de le faire, en piochant dans des fonctions spécifiques à un OS. Maintenant, il faut savoir à quoi ressemble le reste de ton IHM pour mieux t'aiguiller. Si c'est du mode texte, cherches curses sur google.

    Mais le plus simple est quand même de se passer de cette fonctionnalité si on peut.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  6. #6
    Membre éclairé
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juin 2008
    Messages
    522
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Chercheur en informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 522
    Points : 725
    Points
    725
    Par défaut
    Citation Envoyé par bilou_2007 Voir le message
    Je l'ai testé mais ça na pas marché (du moins je l'ai pas utilisé correctement)
    voila le code de teste:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    int main()
    {
     
     
        char c;
        cout<<"caractere"<<endl;
        int key = getch();
        cin>>c;  <--ERREUR Ne pas mettre de cin
        cout<<"votre caractere: "<<c<<endl;   <--ERREUR Le caractère est key
        return 0;
     
    }
    Oui pour moi c'était évident que key comme son nom l'indique c'était le caratère.
    Raphchar.

  7. #7
    Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2007
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 102
    Points : 66
    Points
    66
    Par défaut
    Citation Envoyé par raphchar Voir le message
    Oui pour moi c'était évident que key comme son nom l'indique c'était le caratère.
    Merciiiiiii ça marche et en plus c'est trop cool avec cette fonctionnalité ,mille mercis.

    Citation Envoyé par JolyLoic Voir le message
    Mais le plus simple est quand même de se passer de cette fonctionnalité si on peut.
    Pourquoi? Par exemple,dans mon programme je demande pas mal de fois à l'utilisateur de choisir en se servant des caracteres('o' si oui 'n' sinon),or il se trouve que le fait de saisir une string au lieu d'une lettre me pose probleme et ca m'oblige à la rigueur de faire le teste à chaque fois(do while)..enfin je trouve que l'utilisation de cette fonctionnalité pourrait simplifier grandement le boulot,enfin je ne sais pas trop mais c'est juste que j'aimerais comprendre,puisque vous adoptez cet avis c'est qu'il y a une bonne raison,ce serait bien de nous en faire part

  8. #8
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Simplement parce que getch n'est pas portable.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  9. #9
    Membre du Club
    Homme Profil pro
    Inscrit en
    Février 2007
    Messages
    102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 102
    Points : 66
    Points
    66
    Par défaut
    Citation Envoyé par JolyLoic Voir le message
    Simplement parce que getch n'est pas portable.
    Que dites vous de getc(stdin) alors??J'ai appris qu'elle est meilleure que la fonction getch(),donc j'essaye de l'exploiter mais,et le probleme est qu'il ya un mais,ca ne saisit pas aussitot que l'utilisateur tape une touche,dites moi ce qui ne va pas dans ce bout de code s'il vous plait:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    int carac;
                for (;;)///la boucle qui attend la saisie de l'utilisateur
                {
                    carac=getc(stdin);
                    if (carac != 0) break;
                }
                cOUn=carac;  ///cOUn est le char dont j'aurai besoin apres et carac me sert de variable de teste
                cout<<cOUn;

  10. #10
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Points : 16 213
    Points
    16 213
    Par défaut
    Citation Envoyé par bilou_2007 Voir le message
    Que dites vous de getc(stdin) alors??J'ai appris qu'elle est meilleure que la fonction getch(),donc j'essaye de l'exploiter mais,et le probleme est qu'il ya un mais,ca ne saisit pas aussitot que l'utilisateur tape une touche,
    C'est comme ça qu'elle est prévue pour fonctionner. Il n'y a rien dans le standard pour résoudre ce problème. Donc soit on change les termes du problème, soit on choisit une fonction non standard, mais plus ou moins portable (curse, getch...).
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

Discussions similaires

  1. Lire un 'char' sans appuyer sur enter
    Par Jehuty57 dans le forum Langage
    Réponses: 10
    Dernier message: 07/12/2010, 01h12
  2. Afficher un résultat sans appuyer sur la touche (Variable Php -> HTML -> Javascript)
    Par nafix dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 17/01/2008, 21h34
  3. Réponses: 8
    Dernier message: 11/04/2007, 11h52
  4. Réponses: 9
    Dernier message: 10/11/2005, 23h31
  5. Saisir le choix sans avoir à appuyer sur Enter
    Par b_steph_2 dans le forum C++
    Réponses: 7
    Dernier message: 12/07/2005, 11h27

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