cs_luckyalan
Messages postés24Date d'inscriptionjeudi 19 février 2009StatutMembreDernière intervention 8 janvier 2014
-
22 juin 2009 à 17:07
cs_luckyalan
Messages postés24Date d'inscriptionjeudi 19 février 2009StatutMembreDernière intervention 8 janvier 2014
-
22 juin 2009 à 19:00
Bonjour je rebebute en C EN CONSOLE après 20 ans d'arret. (avec le tuto de [mailto:m@teo m@teo])
je n'arrive plus à faire les lignes de code permettant de saisir à la volée 50*20 et que le programme stocke 50 et 20 dans 2 variables et reconnaisse que * correspond à "mulptiplier"
pour l'instant je mets 50 dans une variable avec scanf, puis j'utilise getch() pour entrer le signe de l'opération, mais je voudrais que le programme permette à l'utilisateur de saisir au clavier sans se poser de question
(pour info ci-dessous mon bout de code qui marche mais ne correspond pas à ce que j'aimerai)
merci à tous
#include
<stdio.h>#include
<stdlib.h>#include
<string.h>
int
main(
int argc,
char *argv[]){
int total=0, sousTotal=0, nb1=0, nb2=0, nb3=0;
char action=
' ';
//CALCULETTEprintf(
"saisis le nb1 entre 1 et 100\n");scanf(
" %ld",&total);
while
(action!=27){
printf(
"quelle operation ?\n");action=getch();
// ca recupere la saisie d'une seule touche SANS faire ENTREE printf (
" nombre initial = %ld, et l operation est %c \n",total, action);
switch (action){
case 42:
// le symbole ASCII correspond à * printf(
"TU VEUX MULTIPLIER PAR COMBIEN ? \n");scanf(
" %ld",&nb2);total = total*nb2;
printf (
" nouveau total ancien total*nb2, donc total %ld\n", total);
break;
case 43:
// le symbole ASCII correspond à +printf(
"TU VEUX AJOUTER COMBIEN ? \n");scanf(
" %ld",&nb2);total = total+nb2;
printf (
"nouveau total ancien total+nb2, donc total %ld\n", total);
break;
case 27:
// le symbole ASCII correspond à ESC, c'est à dire ECHAPprintf (
"\n\n\n TU AS FAIT ECHAP Merci, au revoir\n\n\n");
break;
case 48:
// le symbole ASCII 48 correspond au chiffre 0printf (
"\n\n\n tu as saisi 0 pour que je remettre le compteur à zero,");printf (
"\n OK, tu peux redemarrer une opération si tu veux\n\n"); total = 0;
break;
// Alex, à toi de continuer : - correspond à 45, / correspond à 47, etc...}
}
system (
"PAUSE");
return
0;
/* le prog renvoie 0 puis s'arrete*/}
quand on veut on peut
A voir également:
C en Console, saisis à la volée et reconnaissance des caractères frappés (getch(
debutant VB
Messages postés93Date d'inscriptionlundi 3 juillet 2006StatutMembreDernière intervention25 juin 2010 22 juin 2009 à 17:26
Je n'ai pas tout compris pour ce que tu attendais ("je voudrais que le programme permette à l'utilisateur de saisir au clavier sans se poser de question" --> c'est à dire ?)
Le code suivant peut-il t'aider ?
debutant VB
Messages postés93Date d'inscriptionlundi 3 juillet 2006StatutMembreDernière intervention25 juin 2010 22 juin 2009 à 18:20
Je ne l'ai pas vraiment regardé, mais un code de ce genre : http://www.cppfrance.com/codes/EVALUATEUR-EXPRESSION_37828.aspx fonctionnerait sans doute à partir d'un tableau de caractères créé grâce à getch() (fonction evaluer_expression(cTab)).
Sinon, je pense que tu pourras peut-être trouver ce qu'il te faut en recherchant quelque chose du genre "C++ évaluer expressions" (par exemple : http://www.cppfrance.com/codes/ALGORITHME-EVALUER-EXPRESSIONS-ARITHMETIQUES_47952.aspx), mais bon, je ne suis qu'un débutant en C++ (comme l'indique mon pseudo que je n'ai toujours pas pu changer ... ;)), donc je me trompe peut-être (j'essaye juste d'aider mais j'y arrive très rarement ^^).
NB: Il est important de valider le "Réponse acceptée !" une fois qu'on a répondu à ta question, mais ne le mets pas si je n'y ai pas répondu !
(ça incite les personnes à ne pas regarder le sujet - car soit-disant clos)
cs_luckyalan
Messages postés24Date d'inscriptionjeudi 19 février 2009StatutMembreDernière intervention 8 janvier 2014 22 juin 2009 à 17:50
merci de m'avoir répondu.
cela ne correspond pas à ce que je recherche et que j'ai un peu de difficulté à exprimer, je réessaye :
je voudrais qu'on saisisse au clavier (sans arrêter) "50*20=" et que le programme reconnaisse le chaque caractère et transforme la saisie en 2 variables (op1 = 50, op2=20) et retourne 50*20=1000 (evidemmment c'est un exemple) ce que je veux c'est qu'à chaque frappe le prog analyse. avec getch() c'est possible, mais je ne sais pas comment lui faire enregistrer 5,0,*,2,0,= et transformer tout ca en 50*20=1000
cs_luckyalan
Messages postés24Date d'inscriptionjeudi 19 février 2009StatutMembreDernière intervention 8 janvier 2014 22 juin 2009 à 19:00
merci "debutant VB" et bien tu vois que tu peux rendre service, toi qui en doutais.
Le lien http://www.cppfrance.com/codes/ALGORITHME-EVALUER-EXPRESSIONS-ARITHMETIQUES_47952.aspx contient toutes les réponses à mes questions, et ne sachant pas "ce que je cherchais" je ne l'aurai jamis trouvé sans ton aide.
merci infiniment à toi ! ;o))
bon, va falloir que je bosse maintenant c'est trouvé, mais c'est pas gagné.
Amitiés
Alain