begin process at 2010 03 21 20:33:03
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Débutant(e)

 > 

C en Console, saisis à la volée et reconnaissance des caractères frappés (getch() ou tutre ??


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

C en Console, saisis à la volée et reconnaissance des caractères frappés (getch() ou tutre ??

lundi 22 juin 2009 à 17:07:37 | C en Console, saisis à la volée et reconnaissance des caractères frappés (getch() ou tutre ??

luckyalan

Bonjour je  rebebute en C EN CONSOLE après 20 ans d'arret. (avec le tuto de 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=' ';

//CALCULETTE

printf(

"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 ECHAP

printf (

"\n\n\n TU AS FAIT ECHAP Merci, au revoir\n\n\n");

break;

case 48:// le symbole ASCII 48 correspond au chiffre 0

printf (

"\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
lundi 22 juin 2009 à 17:26:47 | Re : C en Console, saisis à la volée et reconnaissance des caractères frappés (getch() ou tutre ??

debutant VB

Membre Club
Réponse acceptée !
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 ?

#include <stdio.h>
#include <stdlib.h>

int Operation(char, int, int);

int main(void)
{
    char OpType; int Op1, Op2;
    printf("Operation : ");
    scanf("%ld", &Op1);
    scanf("%c", &OpType);
    scanf("%ld", &Op2);
    printf("\nResultat : %ld.\n", Operation(OpType, Op1, Op2));
    system("PAUSE");
    return 0;
}

int Operation(char OpType, int Op1, int Op2)
{
    switch (OpType)
    {
        case '*':
            return Op1 * Op2;
        case '+':
            return Op1 + Op2;
        // etc ...
        default:
            break;
    }
    return 0;
}

lundi 22 juin 2009 à 17:50:50 | Re : C en Console, saisis à la volée et reconnaissance des caractères frappés (getch() ou tutre ??

luckyalan

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

quand on veut on peut
lundi 22 juin 2009 à 18:20:16 | Re : C en Console, saisis à la volée et reconnaissance des caractères frappés (getch() ou tutre ??

debutant VB

Membre Club
Réponse acceptée !
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)
lundi 22 juin 2009 à 19:00:59 | Re : C en Console, saisis à la volée et reconnaissance des caractères frappés (getch() ou tutre ??

luckyalan

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

quand on veut on peut


Cette discussion est classée dans : printf, total, nb2, ld, correspond


Répondre à ce message

Sujets en rapport avec ce message

[C++] Fenetre Bloquer lors de la recuperation de packets sous WinPcap [ par chris5 ] Bonjour a tous, je suis débutant amateur en programmation c++ et j'ai actullement un probleme avec WinPcap : Je n'arrive pas a faire de lecture de pac prob de virgule pour disision [ par stefbuet ] oui je sais c tt c** mais j'ai un trou de mémoire, car j'ai arrété le C pendant un pti moment et donc je me souvien plus trop d'un truc :pour faire l' probleme avec les if et else [ par alexfr34 ] alexfr34 Bonjour, j'ai perdu le fil avec le chat je ne comprends pas trop le mode d'emploi quelqu'un Besoin d'aide pour ce programme [ par ibnoul ] Salut j'aimerai avoir de l'aide a propos de ce programme en c++ il me sigale des errreurs et je ne parvient pas a les corriger. On me demande creer un calcule pondéeé en c [ par alix46 ] Bonjour, je bloque sur un programme( en c) qui demande les notes obtenues dans un cours ( /20), le stocker dans un vecteur. dans un autres vecteurs l Heure d'été [ par BastienL21 ] Bonjour tout le monde, Etant en train de programmer un mini-OS (tournant sous Windows XP), je suis confronté à un problème qui ne doit pas être très VOID [ par langenoir7712 ] AIDER MOI SVP JE VEUX LE MEME PROGRAMME MAIS MTN AVEC UN VOID POUR NE PAS AVOIR TOUT CE BLABLA REPONDEZ MOI SVPMERCI D'AVANCE#include #include #includ [c] bug dans un code [ par novocain3 ] bonjour, Newbi en programmation, je me suis lancé dans la creation d'un code en [c] qui doit inscrir les valeur d'un tableau à 2 dimensions dans un ta [Débutant ] Créer une calculatrice [ par rockerguitar ] Bonsoir à tous !Je suis nouveau dans le monde de la programmation. J'ai commencé il y a 3 jours. Mon projet est de créer un jeu musical sur la Nintend Problème de débutant en C [ par ArcHeretic ] Bonjour,Alors voila j'aimerais juste savoir ce qu'il cloche dans mon bout de code :#include #include using namespace std;


Nos sponsors


Sondage...

CalendriCode

Mars 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode

 
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 : 0,640 sec (3)

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