Partage
  • Partager sur Facebook
  • Partager sur Twitter

La Saisie d'un Nombre Sécurisée

    4 avril 2008 à 21:48:19

    Slt ...
    J'ai un programme en C++, qui demande à l'utilisateur d'entrer une valeur quelconque(int) ...mon problème est que j'arrive pas à trouver une méthode pour qu'il ne tape que des chiffres ...
    Aprés une recherche, j'ai trouvé une méthode, mais c'est en C ...Et j'ai pas l'envie de mixer le C avec le C++
    1. #include <stdio.h>
    2. #include <stdlib.h>
    3. #include <conio.h>
    4. int main()
    5. {
    6.     char a[5]="";
    7.     int max=6;
    8.     int i=0,myNumber;
    9.     char ch;
    10.     for (;i<4;++i)
    11.     {
    12.         do
    13.         {
    14.             ch=getch();
    15.         }while (isalpha(ch));
    16.         printf("%c",ch);
    17.         a[i]=ch;
    18.     }
    19.     myNumber=atoi(a);
    20.     printf("%d",myNumber);
    21.         return 0;
    22. }

    Donc, cette méthode ----> Ignoré la ...
    Biensur, j'ai pu mettre une boucle avec une condition l'entree soit un chiffre, ou une execption... mais je veux que le programme automatiquement ne permet que la saisie des chiffres ..
    Bref, je veux la traduction du programme écrit en C en dessus, le traduire en C++ ...
    Merci d'avance ...
    • Partager sur Facebook
    • Partager sur Twitter
      4 avril 2008 à 21:56:16

      FAQ de developpez -> CIN_verify
      • Partager sur Facebook
      • Partager sur Twitter
        4 avril 2008 à 22:17:57

        ...bon, j'ai bien cherché, et pas trouvé ce cin_verify ... d'autre solution ?
        • Partager sur Facebook
        • Partager sur Twitter
          4 avril 2008 à 22:55:11

          >Chlab_lak, as-tu testé mon code écrit en C ...

          Citation : Moi

          Biensur, j'ai pu mettre une boucle avec une condition l'entree soit un chiffre, ou une execption... mais je veux que le programme automatiquement ne permet que la saisie des chiffres .



          Donc, ce n'est pas ce que je cherche ...
          Je cherche, une méthode de sorte, quand l'utilisateur tape une lettre, il n'affiche rien (getch() ??) ...et rien ne se passe ...
          • Partager sur Facebook
          • Partager sur Twitter
            4 avril 2008 à 23:10:34

            conio.h n'est pas portable, il y a pdcurses, sinon tu passes ta console en mode raw et tu y va a coup de std::streambuf::in_avail() (jamais testé)
            • Partager sur Facebook
            • Partager sur Twitter
              4 avril 2008 à 23:23:35

              humm ...conio.h n'est pas portable ?? une raison plus, pour ne pas l'utiliser.
              pour tes solutions aucun n'a marchées Chlab_lak, std::streambuf::in_avail() retourne le nombre de caractères disponible dans le buffer !!!et ce n'est pas ce que je cherche ....

              Pour etre trés clair et précisé, Quel est l'équivalent de la fonction "getch()" en C++ ?? ou peut on inventer un truc avec les flux d'entree pour construire l'équivalent de "getch()"?
              • Partager sur Facebook
              • Partager sur Twitter
                4 avril 2008 à 23:29:55

                Citation : zoro_2009

                pour tes solutions aucun n'a marchées Chlab_lak,


                meme pas pdcurses ?

                Citation : zoro_2009

                std::streambuf::in_avail() retourne le nombre de caractères disponible dans le buffer !!!et ce n'est pas ce que je cherche ....


                tu regarde s'il y a des caractere dans le buffer, si oui tu les recupere (jamais testé, et il faut passer la console en mode RAW)

                Citation : zoro_2009

                Pour etre trés clair et précisé, Quel est l'équivalent de la fonction "getch()" en C++ ??


                il n'y en a pas

                Citation : zoro_2009

                ou peut on inventer un truc avec les flux d'entree pour construire l'équivalent de "getch()"?


                en passant par un thread et par le bout de demarche que j'ai donné plus haut
                • Partager sur Facebook
                • Partager sur Twitter
                  4 avril 2008 à 23:50:18

                  pdcurses, c'est une bib, et j'ai pas d'envie d'inclure d'autre header + je ne sais pas si cette pdcurses est portable, puisque ce programme est destiné pour marcher sous linux ...

                  La démarche à suivre pour faire passer le mode console RAW, est en C, et comme j'ai dit, je ne veux pas mixer le C et le C++ ...

                  Et pour les threads ....je ne connais pas ça ...

                  Citation : Chlab_lak


                  Citation : moi


                  Pour etre trés clair et précisé, Quel est l'équivalent de la fonction "getch()" en C++ ??



                  il n'y en a pas



                  Donc laisse tomber ...

                  • Partager sur Facebook
                  • Partager sur Twitter
                    5 avril 2008 à 12:05:59

                    cin.get() si tu cherches un équivalent à getch();
                    • Partager sur Facebook
                    • Partager sur Twitter
                    Co-auteur du cours de C++. ||| Posez vos questions sur le forum ||| Me contacter.
                      5 avril 2008 à 16:13:50

                      > Nanoc, ton truc "cin.get()" n'a marche non plus ...toujours il affiche les lettres qu'on tappe sur le clavier ...
                      • Partager sur Facebook
                      • Partager sur Twitter
                        5 avril 2008 à 16:16:51

                        Oui, bien sûr, ça tu pourras pas l'éviter avec une fonction standard. Je pensais que tu voulais juste récupérer le texte entré caractère par caractère.
                        • Partager sur Facebook
                        • Partager sur Twitter
                        Co-auteur du cours de C++. ||| Posez vos questions sur le forum ||| Me contacter.

                        La Saisie d'un Nombre Sécurisée

                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                        • Editeur
                        • Markdown