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???,

3 réponses

  1. 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
  2. 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
    1. 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
    2. greg49 Messages postés 154 Statut Membre 8
       
      salut,

      essaie en mettant while((int*)a<0)...
      0
  3. 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