Bonjour,
voici mon problème : ce code marche
using namespace std;
#include
#include <stdio.h>
int lire(char *sMes,int iInf,int iSup);
int main()
{
int i=lire("nombre ? ",0,10);
cout << "i= " << i << endl;
return 0;
}
int lire(char *sMes,int iInf,int iSup)
{
char *cSaisie;
int iNb;
cout << sMes;
do
{
cin >> cSaisie;
iNb=atoi(cSaisie);
if (iNb != 0 && cSaisie[0]!='0')
{
if (iNb >= iInf && iNb <= iSup) return iNb;
else cout << " Valeur hors intervalle. Ressaisir la valeur : ";
}
else cout << "Votre saisie n'est pas numérique ";
}
while (1);
}
Par contre ceci compile mais plante lorsque je saisis une valeur et je voudrais savoir pourquoi:
using namespace std;
#include
#include <stdio.h>
int lire(char *sMes,int iInf,int iSup);
void test();
int main()
{
test();
return 0;
}
int lire(char *sMes,int iInf,int iSup)
{
char *cSaisie;
int iNb;
cout << sMes;
do
{
cin >> cSaisie;
iNb=atoi(cSaisie);
if (iNb != 0 && cSaisie[0]!='0')
{
if (iNb >= iInf && iNb <= iSup) return iNb;
else cout << " Valeur saisie incorrect. Ressaisir la valeur : ";
}
else cout << "Votre saisie n'est pas numérique!! RESSAISISSEZ SVP!! ";
}
while (1);
}
void test()
{
int i=lire("nombre ? ",0,10);
cout << "i= " << i << endl;
}
Je sais qu'au lieu de mettre char *cSaisie je pourrais mettre char cSaisie[10] mais je voulais tester avec un pointeur.
Merci.
Pizza Dude