Calcul C

Résolu
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. declare une variable de type char ( par exemple : char signe ; ) et ton scanf ("%c",&signe) ;
    je pense avoir repondu a ta question.
    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 :)
      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 :)
        1. le scanf de l'operateur ce fait il normalement ?
        2. Contributeur
          @lucieb31y a pas de raison qu'il ne se fasse pas normalement ...
        3. @Nabla'ssi 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
        4. @lucieb31Si je pose la question c'est qu'il y a une raison
          Et quelle est cette raison ???
      2. Contributeur
        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. Contributeur
          pour vider le buffer du clavier, on peut aussi faire fflush(stdin) ;
          1. Contributeur
            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);