Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
619 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  savoir si une variable est de type entier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

savoir si une variable est de type entier

n°231310
becvert
Posté le 20-10-2002 à 17:31:29  profilanswer
 

voici mon code:
do
    {
    clrscr;
    printf("Saisissez le nombre de tirages auxquels vous voulez proceder:\n(un nombre entier entre 1 et 99999)\n" );
    scanf("%d",&n);
    } while (n<=0 || n>99999

j'aimerai ajouter une condition du genre is_integer(n)
dans le cas où l'utilisateur saisie autrechose qu'un entier
merci
 
et je suis sous windows et clrscr ne fonctionne pas.
une idée ?
merci encore


Message édité par becvert le 20-10-2002 à 17:32:39
mood
Publicité
Posté le 20-10-2002 à 17:31:29  profilanswer
 

n°231311
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 20-10-2002 à 17:32:28  profilanswer
 

pourquoi faire? tu arrive a mettre dans n autre chsoe qu'un entier?
 
utilise les balise cpp, stp


---------------
du bon usage de rand [C] / [C++]
n°231315
becvert
Posté le 20-10-2002 à 17:35:25  profilanswer
 

Taz@PPC a écrit a écrit :

pourquoi faire? tu arrive a mettre dans n autre chsoe qu'un entier?
 
utilise les balise cpp, stp




 
si je saisie un caractere
ca pose un probleme
genre le symptome d'une boucle infinie
 
en fait ce que je veux c'est l"equivalent d'un is_integer en c
et non cpp
merci


Message édité par becvert le 20-10-2002 à 17:42:59
n°231322
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 20-10-2002 à 17:46:46  profilanswer
 

si tu veux des entrées sorties sur en C, utilise fgets et scanf/atoi


---------------
du bon usage de rand [C] / [C++]
n°231599
Musaran
Cerveaulté
Posté le 21-10-2002 à 04:56:03  profilanswer
 

Code :
  1. char buf[32];
  2. scanf("%31[0132456798]", buf);
  3. int i= atoi(buf);


---------------
Bricocheap: Montage de ventilo sur paté de mastic silicone
n°231605
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 21-10-2002 à 06:57:09  profilanswer
 

Musaran a écrit a écrit :

Code :
  1. char buf[32];
  2. scanf("%31[0132456798]", buf);
  3. int i= atoi(buf);






 
moi j'aurais plutot fait
 
fgets(buffer, 32 stdin)
int i=atoi(buffer);
 
et vérifier les codes de retour


---------------
du bon usage de rand [C] / [C++]
n°232787
nicolasm
Posté le 23-10-2002 à 10:37:32  profilanswer
 

utilise un do{} while(!scanf()) car il renvoie EOF si le type saisi est en desaccord avec le type demande voila sinon renvoi le nombre de caractere correctement saisi.
 
exemple :  
 
int i;
int res;
scanf("%d",&i);  si i = 1   alors res = 1
                 si i = 'c' alors res = EOF


Message édité par nicolasm le 23-10-2002 à 10:37:57
n°232790
antp
Super Administrateur
Champion des excuses bidons
Posté le 23-10-2002 à 10:40:13  profilanswer
 

nicolasm a écrit a écrit :

 
scanf("%d",&i);  si i = 1   alors res = 1
                 si i = 'c' alors res = EOF




 
res = scanf...
 
sinon ça fait pas grand chose :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
n°232791
nicolasm
Posté le 23-10-2002 à 10:41:23  profilanswer
 

nicolasm a écrit a écrit :

utilise un do{} while(!scanf()) car il renvoie EOF si le type saisi est en desaccord avec le type demande voila sinon renvoi le nombre de caractere correctement saisi.
 
exemple :  
 
int i;
int res;
scanf("%d",&i);  si i = 1   alors res = 1
                 si i = 'c' alors res = EOF
 
de plus utilise un long car les int sont codees en soit sur 2 soit sur 4 octets(depend des compilos) soit 31 bits pour la valeur et 1 pour le signe soit 15 pour la valeur + 1 pour le signe.



n°232887
Taz@PPC
saloperie de i=`expr $i + 1`;
Posté le 23-10-2002 à 13:03:34  profilanswer
 

nicolasm a écrit a écrit :

utilise un do{} while(!scanf()) car il renvoie EOF




 
qui te dis que EOF n'est pas égal à -1 ou à 0? il faut tester explicitement en comparant avec EOF


---------------
du bon usage de rand [C] / [C++]
mood
Publicité
Posté le 23-10-2002 à 13:03:34  profilanswer
 

n°232956
nicolasm
Posté le 23-10-2002 à 14:36:52  profilanswer
 

Taz@PPC a écrit a écrit :

 
 
qui te dis que EOF n'est pas égal à -1 ou à 0?  
il faut tester explicitement en comparant avec EOF




En fait ca depend des compilos pour EOF mais il a juste a tester si ca renvoie le bon nombre d arguments
 
c est a dire 1 pour son cas soit  
int x=0,toto;
while(x!=1)
x=scanf("%d",&toto); :-p

n°270008
gobbaf
Posté le 15-12-2002 à 15:03:01  profilanswer
 

Code :
  1. #define MIN 1
  2. #define MAX 99999
  3. int x,n;
  4. printf("Vous allez creer une nouvelle configuration\n" );
  5. printf("Saisissez le nombre de tirages auxquels vous voulez proceder compris entre [%d] et [%d] : ",MIN,MAX);
  6. x=scanf("%d",&n);
  7. while ((x!=1)||(n<MIN)||(n>MAX))
  8. {
  9.  if (x!=1)
  10.   printf("Taper un chiffre : " );
  11.  else
  12.   printf("Chiffre compris entre [%d] et [%d] : ",MIN,MAX);
  13.  if (n!='\n')
  14.   while (getchar()!='\n');
  15.  x=scanf("%d",&n);
  16.  if ((n>MAX)&&(n<MIN))
  17.  {
  18.   printf("Entrer un chiffre compris entre [%d] et [%d]\n",MIN,MAX);
  19.   printf("Retapper le nombre de tirages : " );
  20.  }
  21. }


 
voilà une solution avec vidange du buffer d'entrée
ça peut se faire également avec la commande fflush(sdtin) mais qui n'est pas autorisée par la norme ANSI


Message édité par gobbaf le 15-12-2002 à 15:05:04
n°270020
asphro
Posté le 15-12-2002 à 15:54:54  profilanswer
 

tiens c marrant j ai le meme exo a faire sur la dichotomie !
 
tp 8 exo 6


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  savoir si une variable est de type entier

 

Sujets relatifs
probleme avec une variable NULL (en access)besoin de votre mega-aide today :( commet savoir si une dir existe
[VB6]Catcher les messages windows (du type WM_....) (OnToolTipShow)Commment déclarer une variable utilisable ds tout le projet ???
affichage du tableau en entierprobleme de changement de type pour une variable [newbies du Python]
Envoie de mail de type text/html avec mailto[PHP] Order by une variable ???
[C] probleme de variable .... 
Plus de sujets relatifs à : savoir si une variable est de type entier


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR