Calcul C

Résolu
ilgreco_112 Messages postés 40 Statut Membre -  
lucieb31 Messages postés 363 Statut Membre -
Bonjour,
J'aimerai faire une petite calculatrice en C, mais dans le style suivant:

printf("Entrez une valeur entiere: ");
scanf("%d", &A);
printf("Entrez le signe de l'operation: ");
scanf(" .... ");
printf("Entrez une seconde valeur: ");
scanf("%d", &B);
...

Mais je ne sais pas comment ecrire le second "Scanf", ou comment on doit faire pour que l'utilisateur entre lui meme le signe "+" "-" "*" "/"...

Merci d'avance!
Configuration: Windows Vista
Firefox 3.0.8

6 réponses

  1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
     
    Salut,
    Oui c'est tout à faire normal. Cela s'explique par le '\n' stocké dans le buffer clavier lors du premier scanf.
    Ainsi, si tu mets un scanf("%c",...), le caractère contiendra '\n', sans même te demander ton choix.
    Teste plutôt :
    printf("Entrez une valeur entiere: ");
    scanf("%d", &A);
    getchar(); //pour enlever le '\n' du buffer
    printf("Entrez le signe de l'operation: ");
    signe=getchar(); //plus performant que scanf("%c",&signe);
    printf("Entrez une seconde valeur: ");
    scanf("%d", &B); 
    

    Cdlt
    1
  2. Nabla's Messages postés 18201 Date d'inscription   Statut Contributeur Dernière intervention   3 228
     
    Bonjour

    char operation;
    scanf("%c", &operation);

    en tapant scanf sur google, tu serai tombé sur ce site:
    http://www.cplusplus.com/reference/cstdio/scanf/

    google est ton ami, aimes le
    0
  3. ericoerica Messages postés 19 Statut Membre
     
    declare une variable de type char ( par exemple : char signe ; ) et ton scanf ("%c",&signe) ;
    je pense avoir repondu a ta question.
    0
  4. ilgreco_112 Messages postés 40 Statut Membre 1
     
    Merci de vos reponses, :)
    j'ai essayé pleins de trucs sur google mais pas pensé a mettre simplement scanf ^^

    je vais essayer ca merci beaucoup :)
    0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. ilgreco_112 Messages postés 40 Statut Membre 1
     
    voila merci c'est reglé, j'ai quand meme un petit soucis car lorsque je "printf" la reponse ducalcul il m'affiche qqchose du genre " - 107267848000"

    j'abandonne pour le moment, merci beaucoup pour votre aide :)
    0
    1. lucieb31 Messages postés 363 Statut Membre 62
       
      le scanf de l'operateur ce fait il normalement ?
      0
      1. Nabla's Messages postés 18201 Date d'inscription   Statut Contributeur Dernière intervention   3 228 > lucieb31 Messages postés 363 Statut Membre
         
        y a pas de raison qu'il ne se fasse pas normalement ...
        0
      2. lucieb31 Messages postés 363 Statut Membre 62 > Nabla's Messages postés 18201 Date d'inscription   Statut Contributeur Dernière intervention  
         
        si je pose la question c'est qu'il y a une raison, et il peut y avoir une raison qu'il ne se fasse pas normalement
        0
      3. loupius > lucieb31 Messages postés 363 Statut Membre
         
        Si je pose la question c'est qu'il y a une raison
        Et quelle est cette raison ???
        0
      4. lucieb31 Messages postés 363 Statut Membre 62 > loupius
         
        fiddy a repondu a ma place.
        merci
        0
  7. Nabla's Messages postés 18201 Date d'inscription   Statut Contributeur Dernière intervention   3 228
     
    pour vider le buffer du clavier, on peut aussi faire fflush(stdin) ;
    0
    1. fiddy Messages postés 441 Date d'inscription   Statut Contributeur Dernière intervention   1 847
       
      Pour vider le buffer du clavier, on peut aussi faire fflush(stdin) ;
      Non. fflush() a un comportement indéfini sur les entrées. La façon standard est :
      int c; while((c=getchar())!='\n' && c!=EOF);
      0