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 :

getch() sous linux


Sujet :

C

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 37
    Points : 17
    Points
    17
    Par défaut getch() sous linux
    bonjour
    ma question est simple : comment utiliser la fonction getch() sous linux ?
    merci

  2. #2
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut Re: getch() sous linux
    bonjour,
    Citation Envoyé par bobo21
    ma question est simple : comment utiliser la fonction getch() sous linux ?
    Une petite recherche sur le forum vous aurez fait gagner du temps puisqu'un post portant le même titre à déjà était posté : getch() sous linux.
    Donc getch existe sous Linux dans la bibliothèque ncurses mais si vous pouvez éviter de l'utiliser c'est une bonne chose puisque cette fonction n'est pas standard, à remplacer par fgets si possible : Saisie de données par un opérateur (stdin)

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 37
    Points : 17
    Points
    17
    Par défaut
    merci pour votre réponse
    En fait je cherche une fonction qui permet d'entrer un caractère sans avoir à valider (c'est pour un menu).
    J'en profite pour demander si vous connaissez une fonction de saisie d'un caractère (avec validation) mais qui ne permette pas de saisir plus d'un caractère. J'ai essayé getchar et scanf("%c") mais si j'entre 2 caractères il les traite les 2.

  4. #4
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par bobo21
    merci pour votre réponse
    En fait je cherche une fonction qui permet d'entrer un caractère sans avoir à valider (c'est pour un menu).
    Rien de standard (curses, ncurses, termios...)
    J'en profite pour demander si vous connaissez une fonction de saisie d'un caractère (avec validation) mais qui ne permette pas de saisir plus d'un caractère. J'ai essayé getchar et scanf("%c") mais si j'entre 2 caractères il les traite les 2.
    On t'a passé des liens. Tu les as lu ? On dirait pas...
    Pas de Wi-Fi à la maison : CPL

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 37
    Points : 17
    Points
    17
    Par défaut
    j'ai essayé les gets, scanf, getchar, fgets... mais si j'entre par exemple 11 dans un getchar ça fait comme si j'entrais 2 fois 1

  6. #6
    Rédacteur

    Avatar de gege2061
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Juin 2004
    Messages
    5 840
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Juin 2004
    Messages : 5 840
    Points : 11 625
    Points
    11 625
    Par défaut
    Citation Envoyé par bobo21
    mais si j'entre par exemple 11 dans un getchar ça fait comme si j'entrais 2 fois 1
    Et se n'est pas ce que tu as fait

  7. #7
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par bobo21
    j'ai essayé les <...> fgets<...>
    Prouve le !
    Pas de Wi-Fi à la maison : CPL

  8. #8
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par bobo21
    j'ai essayé les gets, scanf, getchar, <...>
    Pourquoi ? Dans l'article,

    http://emmanuel-delahaye.developpez....tes.htm#saisie

    il est indiqué que ces fonctions ne sont pas adaptées. Si tu ne comprends pas ce qui est écrit, pose des questions.

    Il est aussi indiqué:
    fgets()

    Cette fonction est parfaitement adaptée à la saisie d'une ligne, (même de 1 caractère). Son usage est recommandé.
    Quels sont les mots que tu ne comprends pas ?
    Pas de Wi-Fi à la maison : CPL

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    37
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 37
    Points : 17
    Points
    17
    Par défaut
    En fait je voulais un scanf qui ne permette pas de saisir 2 variables en 1 fois et qui ne bug pas.
    J'ai essayé toutes les fonctions du lien et aucun ne convenait.

    au cas ou quelqu'un chercherait j'ai trouvé une fonction :
    http://cboard.cprogramming.com/archi...p/t-27714.html

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    int mygetch( ) {
    struct termios oldt,
    newt;
    int ch;
    tcgetattr( STDIN_FILENO, &oldt );
    newt = oldt;
    newt.c_lflag &= ~( ICANON | ECHO );
    tcsetattr( STDIN_FILENO, TCSANOW, &newt );
    ch = getchar();
    tcsetattr( STDIN_FILENO, TCSANOW, &oldt );
    return ch;
    }

  10. #10
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par bobo21
    au cas ou quelqu'un chercherait j'ai trouvé une fonction :
    http://cboard.cprogramming.com/archive/index.php/t-27714.html

    int mygetch( ) {
    struct termios oldt,
    <...>
    Ben oui, termios : déjà cité dans http://www.developpez.net/forums/vie...383364#2383364
    Pas de Wi-Fi à la maison : CPL

Discussions similaires

  1. [Série] Accès au port série sous linux
    Par ghost dans le forum Entrée/Sortie
    Réponses: 10
    Dernier message: 10/10/2007, 10h43
  2. Comment désinstaller MySQL sous linux
    Par nahmsath dans le forum Installation
    Réponses: 5
    Dernier message: 18/09/2007, 10h46
  3. getch() sous linux
    Par romca dans le forum C
    Réponses: 6
    Dernier message: 21/10/2005, 16h36
  4. installer jbuilder7 sous linux
    Par rtlinfo34 dans le forum JBuilder
    Réponses: 5
    Dernier message: 30/10/2002, 19h16
  5. Je ne peux établir une connexion cliente sous Linux.
    Par Anonymous dans le forum CORBA
    Réponses: 5
    Dernier message: 16/04/2002, 15h57

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