begin process at 2012 05 28 18:42:15
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Au secours

 > 

comparer un caractere et un entier


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

comparer un caractere et un entier

mardi 9 mars 2004 à 22:03:34 | comparer un caractere et un entier

sozer2

Bonjour j'ai 2 variable
char sup;
int nb_produits;
for(i=0; i<(nb_produits-sup); i++)

En fait ce que je veux, c que lors d'une saisie si on choisi un chiffre il n'y ai pas de probleme mais si on saisie un caractere signal l'erreur (actuellement si sup est un entier et qu'un caractère est rentré à la place, le programme bugge)
Comment je peut faire pour que si un caractère est rentré a la place d'un entier alors un message d'erreur soit affiché.
Merci
mardi 9 mars 2004 à 22:32:25 | Re : comparer un caractere et un entier

vecchio56

Administrateur CodeS-SourceS
le problème c'est qu'un caractère est aussi un entier.
dans ce cas tu devrais peut etre lire des chaines de caractères
mardi 9 mars 2004 à 22:59:54 | Re : comparer un caractere et un entier

PunkDude424

tu peux travailler avec le code ascii, tu saisi les donnée dans un char et si la lettre entré n'est pas compris entre 48 et 57 tu affiche une erreur. Mais sa fonctionne seulement si tu veux saisir un chiffre entre 0 et 9, sinon faudrais que je cherche plus


ex.:

char sup;

cin << sup;

if(sup < 48 || sup > 57)
.....


mardi 9 mars 2004 à 23:20:09 | Re : comparer un caractere et un entier

sozer2

justement çà peut etre un chiffre >9
je vais m'exprimer différement, en faitte j'ai le code suivant:

int sup;
int a=0;
int i;
cout<<"Numéro du produit (de 1 à "<<nb_produits<<"): ";
cout<<sup;
if(nb_produits!=0 && (sup-1)<nb_produits)
{
for(i=0; i<(nb_produits-sup); i++)
{
liste[sup-1+i]=liste[sup+i];
}
liste[nb_produits]=NULL;
nb_produits--;
FILE *fp;
fp=fopen("nb.txt","w+");
fprintf(fp,"%d\n",nb_produits);
fclose(fp);
}

Quand je fais ce programme en rentrant dans "sup" un entier pas de probleme mais si on rentre un caractère (faute de frappe) alors le programme part en boucle n'importe comment.
Donc j'aurai voulu savoir comment faire pour que meme si l'utilisateur de gourre de touche qu'on lui propose a nouveau de taper un nouveau "sup", qu'il puisse recommencer sa saisie.
mercredi 10 mars 2004 à 07:49:57 | Re : comparer un caractere et un entier

DARKSIDIOUS

Membre Club Administrateur CodeS-SourceS
Je te conseille de tester chaque caractère entré par l'utilisateur, pour savoir si c'est un chiffre ou un nombre (avec la table ASCII par exemple) à chaque saisie pour éviter ton problème de boucle !

DarK Sidious

[Responsable API/VB du site www.ProgOtoP.com]
Téléchargez ProgOtoP API Viewer
mercredi 10 mars 2004 à 10:56:45 | Re : comparer un caractere et un entier

hilairenicolas


sinon tu as la fonction isdigit(...)
mercredi 10 mars 2004 à 12:57:00 | Re : comparer un caractere et un entier

sozer2

merci a tous finalement j'ai choisi la maniere de creer un chaine de caractère et de comparer ses caractère 1 par 1 au code ascii des chiffres
Pour les curieux voila ce que çà donne, c'est un peu lourd mais çà marche

char *sup;
int a=0;
int i,j;
int k=0;
int sup2;
double sup3=0;
sup=new(char[10]);
cout<<"entrez le numéro du produit à supprimer"<<endl;
cin>>sup;
j=strlen(sup) ;
for (i=0;i<j;i++)
{
if(sup[i] < 48 || sup[i] > 57)
{
break;
}
else
{
k++;
}
}
if(k==j) (test si TOUS les caractères sont des chiffres)
{
for (i=0;i<j;i++)
{
sup2 = sup[i] - '0';
sup3=sup3+(sup2*(pow(10,(j-1-i))));
}
if(nb_produits!=0 && sup3!=0 &&(sup3-1)<nb_produits)
{
for(i=0; i<(nb_produits-sup3); i++)
{
liste[(int)sup3-1+i]=liste[(int)sup3+i];
}
liste[nb_produits]=NULL;
nb_produits--;
FILE *fp;
fp=fopen("nb.txt","w+");
fprintf(fp,"%d\n",nb_produits);
fclose(fp);
}
}

mercredi 10 mars 2004 à 14:12:23 | Re : comparer un caractere et un entier

Chouchou182


Salut

Ca peut paraître stupide mais si l'on veut exclusivement des chiffres dans sup, pourquoi le déclarer en tant que char* ???

Après tout il y a peut-être une raison qui empêche l'utilisation de données int mais cette raison m'échappe. Merci de m'éclairer.

A++

Chouchou
mercredi 10 mars 2004 à 20:15:18 | Re : comparer un caractere et un entier

sozer2

simplement parce que pour un char on peut taper n'importe quoi alors que pour un int on ne peut taper que un chiffres, en cas ou on taperai un caractère par erreur pour un int alors le programme bugge


Cette discussion est classée dans : comparer, caractere, entier, nb, sup


Répondre à ce message

Sujets en rapport avec ce message

comparer des chaines de caractere [ par gazzall ] Bonjour,Je recherche une fonction ou un algo en C qui compare deux chaines de caracteres et qui retourne un pourcentage de similarites.Exemple :ANTHON convertion chaine de caractere commencant par 0 en entier [ par humnanamouch ] bonjourEn fait j'ai une chaine de caractere avec 8 chiffres qui correspond à un code ascii et je voudrais pouvoir recuperer  le caractere qui correspo recupere des caractere et des entier dans un fichier et les mettre dans des variables....... [ par lunatic34 ] Salut!!!!Voila je voudrais me deplace sur une ligne dans un fichier et prendre les caractere et les entier et les metre dans un tableau de structure.E aide pour un mini projet [ par foufi5 ] salut dans le cadre de mes etudes je suis amené à réaliser une calculette simple avec + * / - et puissance. le probleme c'est que au debut je dois lir lit au clavier des entiers positifs et calcul leur moyenne [ par themessenger ] bonjour on vient de commencer la programmation c ...et j'ai petit souci avec mon code .J'arrive pas à calculer la moyenne !!! quand j'execute il m'aff convertir tableau d'entier en chaine de caractere [ par bosmal ] bonjour, comment feriez vous pour transformer un tableau d'entier (int tab[8192]) en une chaine de caractere. ou autrement y a t il une fonction qui p concatenation LPCSTR [ par bandifull ] Bonjour,Je souhaiterai utiliser une fonction activeX qui prend en parametre un LPCSTR.Ce LPCSTR contient deux parties, une chaine de caractere (statiq Comparer des stings : strcmp ? [ par MrDimanche ] BonjourVoila ce que j'ai fait comme petit programme, je souhaiterai que la la boucle se termine lorsque j'ai trouvé le mot "impulsa" dans le fichier. conversion de chaine en entier [ par bechwiyech ] Bonsoir j'ai ecris un petit code pour convertir un nombre en un entier. mais ca marche pas , pourriez vous m'aidez. #include #include #include stati saisir un entier dans une [ par sewahass ] salutcomment faire pour verifier la saisie d'un entier et non d'autre chose dans une edit box?j'ai utilisé atoi mais elle ne pred que le debut de la c


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,560 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales