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!
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
-
ContributeurSalut,
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 -
ContributeurBonjour
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 -
declare une variable de type char ( par exemple : char signe ; ) et ton scanf ("%c",&signe) ;
je pense avoir repondu a ta question. -
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 :) -
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 :)-
-
Contributeur@lucieb31y a pas de raison qu'il ne se fasse pas normalement ...
-
@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
-
@lucieb31Si je pose la question c'est qu'il y a une raison
Et quelle est cette raison ??? -
@loupiusfiddy a repondu a ma place.
merci
-
-
Contributeurpour vider le buffer du clavier, on peut aussi faire fflush(stdin) ;