begin process at 2012 05 30 22:43:34
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Divers

 > 

Débutant(e)

 > 

vérifier si l'utilsateur a entré un numéro


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

vérifier si l'utilsateur a entré un numéro

mercredi 11 juin 2008 à 12:28:00 | vérifier si l'utilsateur a entré un numéro

youri01

salut,

je suis en train de réaliser un petit programme en C++ (une sorte de calculatrice). pour éviter des erreurs pendant l'exécution j'aimerai vérifier si l'utilisateur a entré un numéro ou un autre caractère. je veux pas faire un bloque try catch mais plutot un if (test), par exemple : if (is_numeric(valeur){}

je sais pas comment s'appelle la fonction de test en C++ et c'est pas évident de chercher une fonction pareille sur le net. merci d'avance.
mercredi 11 juin 2008 à 13:44:47 | Re : vérifier si l'utilsateur a entré un numéro

faucheuse

Bin la fonction de test tu la donne : IF... Oo

Ta calculatrice est faite comment : console? ou IHM?
mercredi 11 juin 2008 à 13:58:31 | Re : vérifier si l'utilsateur a entré un numéro

youri01

mon application est de type console, par exemple si tu tapes 1 + 1 ça donne 2 sans problème. maintenant si l'utilisateur entre un caractère sans faire attention comme 'a' (par exemple) au lieu d'un nombre, je veux que le programme affiche un message d'erreur en disant à l'utilisateur : "erreur : essaye de taper un numéro..."
je fais comment pour tester la valeur entrée ? y-a-t-il un moyen simple avec C++ parce que je suis débutant ?

mon code est le suivant (il marche bien, je veux ajouter une fonction de test):

#include <iostream>

using namespace std;

void CalculateNumbers();

int main()
{
    CalculateNumbers();
    return 0;
}

void CalculateNumbers()
{
    char cCommand = 'c';
    char cOperator = '+';
    int iNumber1 = 0;
    int iNumber2 = 0;
    int iTotal = 0;

    system("CLS");
    cout << "Program that calculate two numbers" << endl << endl;
    cout << "c : start calculate" << endl;
    cout << "x : exit program" << endl;
    cin >> cCommand;

    switch (cCommand)
    {
        case 'c':
            cout << "Your are choosing a calculate procedure" << endl;
            cout << "Enter number 1: ";
            cin >> iNumber1;
            cout << "Enter number 2: ";
            cin >> iNumber2;
            cout << "Type of operation : ";
            cin >> cOperator;

            switch (cOperator)
            {
                case '+':
                    iTotal = iNumber1 + iNumber2;
                    cout << iNumber1 << " + " << iNumber2 << " = " << iTotal << endl;
                    break;
                case '-':
                    iTotal = iNumber1 - iNumber2;
                    cout << iNumber1 << " - " << iNumber2 << " = " << iTotal << endl;
                    break;
                case '*':
                    iTotal = iNumber1 * iNumber2;
                    cout << iNumber1 << " * " << iNumber2 << " = " << iTotal << endl;
                    break;
                case '/':
                    iTotal = iNumber1 / iNumber2;
                    cout << iNumber1 << " / " << iNumber2 << " = " << iTotal << endl;
                    break;
            }//switch2

            system("PAUSE");
            CalculateNumbers();
            break;
        case 'x':
            break;

        default:
            cout << "error : command is not correct, chose one from a list !" << endl;
            system("PAUSE");
            CalculateNumbers();
            break;
    }//switch1

}

mercredi 11 juin 2008 à 15:53:57 | Re : vérifier si l'utilsateur a entré un numéro

faucheuse

Il faudrait que tu test les nombres au moment ou l'utilisateur les rentres,
   switch (cCommand)
    {
        case 'c':
            cout << "Your are choosing a calculate procedure" << endl;
            cout << "Enter number 1: ";
            cin >> iNumber1;
            IF(iNumber1...)
              {
              }
            cout << "Enter number 2: ";
            cin >> iNumber2;
            IF(iNumber2...)
              {
              }
            cout << "Type of operation : ";
            cin >> cOperator;

Pour ce que tu dois mettre dedans je suis plus sur du tout et j'aimerais pas t'induire en erreur, si je me souvien je reposterai en attendant bon courage^^
mercredi 11 juin 2008 à 16:10:38 | Re : vérifier si l'utilsateur a entré un numéro

Neo_Fr

Membre Club
Réponse acceptée !
Une petite fonction pour verifier que l'utilisateur a bien entrer un nombre:

BOOL __stdcall IsNumeric(LPSTR lpsz)
{
    LPSTR lptr;
    lptr = lpsz;
    do
    {
        if( (*lptr < 48) || (*lptr > 57) ) return FALSE;
    }while(*++lptr);
    return TRUE;
}

Neo_Fr
mercredi 11 juin 2008 à 21:09:52 | Re : vérifier si l'utilsateur a entré un numéro

youri01

justement faucheuse, ce qui m'intéresse c'est ce qu'il y a dans l'expression de test du if. je pense qu'on vb (ça fait longtemps que j'ai pas utilisé le vb) on écrit : if (isNumeric(valeur)) then... là, je suis encore débutant en C++ et j'arrive pas à trouver la fonction. je vais voir la solution de Neo_fr pour voir ce que ça donne, même si je comprends pas grand chose.
mercredi 11 juin 2008 à 21:16:49 | Re : vérifier si l'utilsateur a entré un numéro

Neo_Fr

Membre Club
Réponse acceptée !
Un petit exemple:

char szNumber[32];
printf("Entrer un nombre: \n");
gets(szNumber);
if(IsNumeric(szNumber)) printf("La chaine est valide\n");
  else printf("La chaine contient des caracteres non valide\n");

Neo_Fr
mercredi 11 juin 2008 à 22:45:33 | Re : vérifier si l'utilsateur a entré un numéro

youri01

Réponse acceptée !
je regroupe ici la fonction et l'exemple de Neo_fr au cas où quelqu'un cherche la même chose :

//merci Neo

#include <iostream>
#include <windows.h>

using namespace std;

BOOL __stdcall IsNumeric(LPSTR lpsz);

int main()
{
    char szNumber[32];
    printf("Entrer un nombre: \n");
    gets(szNumber);
    if(IsNumeric(szNumber)) printf("La chaine est valide\n");
      else printf("La chaine contient des caracteres non valide\n");

    return 0;
}

BOOL __stdcall IsNumeric(LPSTR lpsz)
{
    LPSTR lptr;
    lptr = lpsz;
    do
    {
        if( (*lptr < 48) || (*lptr > 57) ) return FALSE;
    }while(*++lptr);
    return TRUE;
}



Cette discussion est classée dans : vérifier, numéro, utilsateur, entré, if


Répondre à ce message

Sujets en rapport avec ce message

Vérifier un header de fichier... [ par MorZong ] Salut,Voilà j'ai créer un programme (simple, pas avec API) de cryptage tout simple et je voudrais qu'il ait sont propre genre de fichier. Alors j'ai m Récupérer un numéro de téléphone [ par arc59 ] J'aimerai savoir s'il existe des DLL permettant de récupérer le numéro de téléphone de la personne appelante.Par exemple, vous téléphonez à un restaur kestion de débutant : afficher le numéro des lignes [ par pas2nom ] Salut=)Bon, ma question concerne un truc tou bête, mais qui est bien contraigant lorsqu'on a 206 lignes de code et qu'on à une erreur à la ligne 92.Do Vérifier si mon nombre est trop grand [ par tweeder ] SalutDans mon programme, je dois vérifier si le nombre entré dépasse la capacité d'un unsigned int. De quelle facon puis-je m'y prendre ? Est-ce que j Nom d'une touche à partir du numéro ASCII [ par didrocks ] Ben, presque tout est dans le sujet, comment obtenir le nom d'une touche pour l'afficher à partir de son numéro ASCII?Merci! Comment protéger son soft ? [ par MattDaft ] Je cherche à protéger mon soft en récupérant un numéro propre au PC (numéro du bios, nuémro de la carte mère, etc.) pour ainsi éviter les copies. Bref c'est quoi ca #if 1 [ par ifren ] salut, oui je sais que je vous ennui avec mais c'est quoi ca ou encors, comment ca marche...ex mais parce que j'ai que 15 jours que j'ai embrasser la Comment dois-je faire ? [ par michelmt ] Salut ,je voudrais demandé a mon prog.. de vérifier si il y a une object (classe"CTable")a l'endoit ou il va dessiné et si ouiboujé le nouvelle object Connaitre le numéro de semaine pour une date donnée [ par diouck ] SalutJe sais qu'en VB il est possible de connaitre le numéro de semaine d'une date donnée avec la fonction suivante :"NumWeek.Text = DatePart("ww", Da vérifier ca position -CPoint CRect [ par michelmt ] Salutvoici mon problême,mon programme dessine des object a l'intérieur d'un rectangleet je me demande depuis très longtemps comment je peut lui fair c


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,936 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales