youri01
Messages postés22Date d'inscriptionsamedi 10 mai 2008StatutMembreDernière intervention22 septembre 2008
-
11 juin 2008 à 12:28
youri01
Messages postés22Date d'inscriptionsamedi 10 mai 2008StatutMembreDernière intervention22 septembre 2008
-
11 juin 2008 à 22:45
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.
Neo_Fr
Messages postés653Date d'inscriptionmardi 6 décembre 2005StatutMembreDernière intervention10 novembre 20142 11 juin 2008 à 21:16
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");
youri01
Messages postés22Date d'inscriptionsamedi 10 mai 2008StatutMembreDernière intervention22 septembre 2008 11 juin 2008 à 22:45
je regroupe ici la fonction et l'exemple de Neo_fr au cas où quelqu'un cherche la même chose :
//merci Neo
#include
#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");
youri01
Messages postés22Date d'inscriptionsamedi 10 mai 2008StatutMembreDernière intervention22 septembre 2008 11 juin 2008 à 13:58
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
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;
cs_faucheuse
Messages postés308Date d'inscriptionjeudi 10 janvier 2008StatutMembreDernière intervention27 octobre 2011 11 juin 2008 à 15:53
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^^
youri01
Messages postés22Date d'inscriptionsamedi 10 mai 2008StatutMembreDernière intervention22 septembre 2008 11 juin 2008 à 21:09
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.