Langage c, diferent de chiffre??,

yoda -  
 pom -
salut a tous ,voila mon petit probleme


while(a<0)
{
printf("combien de génération voulez engendrer?\n");
scanf("%ld",a);
system("cls");
}
cela permet donc de demander une valeur pour "a" tant que a est inferieur a zero, mais si l'utilisateur tape une lettre ou tout otre chose que un chiffre tt bug
il faut donc rajouter dans while(a<0||a!=?) ou le ? et tout a part les chiffre.c'est a dire qu'il demande la valeur de a tant que a<0 ou que a est different d'un chiffre. commen je fer???,
A voir également:

3 réponses

pom
 
Bonsoir Yoda, je n'ai jamais fait de C mais je fais un peu de C++ alors je vais te donner un conseil de C++

convertit ce qui est entré en int

exemple : cout<<(int) 'a'<<endl;
te renvoie 97
et cout<<(int) 'z'<<endl;
te renvoie 122 (et 97+25=122)

(int) 'a' veut dire que tu convertis en int le 'a'.
Si tu vais cout<<(int) 2.3<<endl
ca te renvoie 2 (la partie entiere)


Salut
Pom
0
yada
 
l'idee est bonne mais sa marche pas ,ou du moin j arrive pas

while((int)a<0)
{
printf("combien de génération voulez engendrer?\n");
scanf("%ld",(int)a);
system("cls");
}

et tjr le meme probleme je croi qu il printf non stop
0
marvinrouge
 
Salut essayes ça :

while((int)a<0)
{
char s[1000];
s[0] = '\0';
printf("combien de génération voulez engendrer?\n");
scanf("%s",s);
a = atoi(s);
fflush(stdin);
fflush(stdin);
system("cls");
}
0
greg49 Messages postés 154 Date d'inscription   Statut Membre Dernière intervention   8
 
salut,

essaie en mettant while((int*)a<0)...
0
pom
 
Re-salut Yoda,

Une autre solution (que j'avais faite en Turbo Pascal il y a quatre ans) est de vérifier alors avec les caractères ASCII. Vérifie leur numéro. Je n'est jamais eu l'occasion de le faire en c++ mais peut etre que l'idée peut t'aider

Sinon convertit la string en entier (il y a une fonction du genre atoi). J'avais trouvé sur google tous plein de fonction qui font la correspondance entre des nombres et des string. En c++ (je précise car je n'ai jamais fais de C) une string est un pointeur sur un char (char *) et si tu veux l'adresse de la stringe tu fais &string (idem que &string[0]) car une string est vue (en c++ je le reprécise) comme un tableau de char.

Je ne peux te donner que des idées et non une réponse explicite car je n'ai jamais fais de C.

J'espère que je t'ai un peu débloqué...

Pom
0