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

Langage C++ Discussion :

Empêcher la saisie


Sujet :

Langage C++

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 41
    Par défaut Empêcher la saisie
    Bonjour,
    Existe-il un moyen d’empêcher la saisie (avec cin) de caractère autre que les lettres minuscules ?

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 053
    Billets dans le blog
    141
    Par défaut
    Bonjour,

    Je me demande si vous voyez le problème du bon sens. Pour répondre correctement, je ne connais pas de moyen pour empecher la saisie de majuscules.
    Par contre, je connais tout un tas de moyen pour faire en sorte que les majuscules ne me gênent pas.
    Par exemple, nous continuons de demander à l'utilisateur de taper quelque chose, tant que celui ci est une majuscule:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    {
         char c = 'A';
         do
         {
              cin >> c;
         }while ( c >= 'A' && c <= 'Z' )
    Par exemple.

    Sinon, on peut toujours transformer les majuscules en minuscules avec ne fonction du genre tolower().
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 41
    Par défaut
    Bonjour LitleWhite,
    Oui en effet puisqu’il n’existe aucun moyen d’empêcher la saisie de majuscule j’ai pris la problème dans le mauvais sens, merci d’avoir éclairé ma lanterne. Je pensais qu’avec le code ascii on pouvait différencier les majuscules des minuscules. En fait les lettres accentuées, la ponctuation me pose aussi des problèmes que faire ?

  4. #4
    Expert confirmé
    Avatar de Melem
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2006
    Messages
    3 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Janvier 2006
    Messages : 3 656
    Par défaut
    La condition while (c >= 'A' && c <= 'Z') ne fonctionne que si le système utilise un jeu de caractères dérivé de l'ASCII (c'est le cas de la majorité des systèmes actuels). Une version totalement portable est : while (isupper(c)). En plus c'est plus simple comme ça non ? isupper est déclaré dans <cctype>, dans l'espace de noms std. Le caractère c doit avoir une valeur comprise entre 0 et 127.

    Dans le code ASCII, 'a' est différent de 'A'. Mais pour transformer 'a' en 'A', il suffit de faire toupper('a') (toupper('a') vaut 'A'). toupper('A') n'a aucun effet ... l'inverse est tolower.

    Pour les caractères accentués, c'est plus délicat :

    - Ils ont un code qui n'appartient pas à l'intervalle 0 - 127.
    - Les codes associés aux caractères accentués varient facilement d'un environnement à un autre. Sous Windows par exemple, les applications consoles (les applis en mode texte) et les applications graphiques (avec fenêtre) n'utilisent pas les mêmes codes. De Windows à Linux, n'en parlons même pas. Ainsi, sous Windows, si tu veux manipuler des caractères accentuées, la solution la plus simple consiste à convertir le fichier source au format MS-DOS (compatible avec la console) avant de compiler. Tu trouveras plus d'informations dans la FAQ.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 41
    Par défaut
    Bonsoir Melem,
    Merci pour cet éclaircissement. Comment programmeriez- vous cela ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Excel] empêcher une saisie particulière
    Par Biker-Robby dans le forum Excel
    Réponses: 5
    Dernier message: 22/12/2007, 17h57
  2. Empêcher la saisie de nombre ou de caractère
    Par SOPSOU dans le forum Langage
    Réponses: 3
    Dernier message: 28/08/2007, 17h27
  3. Comment empêcher la saisie d'un espace dans un dbedit?
    Par pierrot67 dans le forum Bases de données
    Réponses: 4
    Dernier message: 21/07/2007, 08h13
  4. Réponses: 3
    Dernier message: 25/04/2007, 16h57
  5. [PHP-JS] Empêcher la saisie dans la barre d'adresse
    Par kodokan dans le forum Langage
    Réponses: 3
    Dernier message: 18/08/2006, 11h37

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