Calcul C

Résolu/Fermé
ilgreco_112 Messages postés 37 Date d'inscription lundi 13 octobre 2008 Statut Membre Dernière intervention 7 juillet 2009 - 22 avril 2009 à 17:20
lucieb31 Messages postés 345 Date d'inscription mercredi 14 janvier 2009 Statut Membre Dernière intervention 28 juillet 2012 - 24 avril 2009 à 21:14
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!
A voir également:

6 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
23 avril 2009 à 21:28
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
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 193
22 avril 2009 à 17:24
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
ericoerica Messages postés 18 Date d'inscription lundi 1 décembre 2008 Statut Membre Dernière intervention 7 mai 2009
22 avril 2009 à 17:24
declare une variable de type char ( par exemple : char signe ; ) et ton scanf ("%c",&signe) ;
je pense avoir repondu a ta question.
0
ilgreco_112 Messages postés 37 Date d'inscription lundi 13 octobre 2008 Statut Membre Dernière intervention 7 juillet 2009 1
22 avril 2009 à 17:28
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

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ilgreco_112 Messages postés 37 Date d'inscription lundi 13 octobre 2008 Statut Membre Dernière intervention 7 juillet 2009 1
22 avril 2009 à 18:10
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
lucieb31 Messages postés 345 Date d'inscription mercredi 14 janvier 2009 Statut Membre Dernière intervention 28 juillet 2012 62
22 avril 2009 à 19:23
le scanf de l'operateur ce fait il normalement ?
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 193 > lucieb31 Messages postés 345 Date d'inscription mercredi 14 janvier 2009 Statut Membre Dernière intervention 28 juillet 2012
22 avril 2009 à 20:14
y a pas de raison qu'il ne se fasse pas normalement ...
0
lucieb31 Messages postés 345 Date d'inscription mercredi 14 janvier 2009 Statut Membre Dernière intervention 28 juillet 2012 62 > Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014
23 avril 2009 à 19:48
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
loupius > lucieb31 Messages postés 345 Date d'inscription mercredi 14 janvier 2009 Statut Membre Dernière intervention 28 juillet 2012
23 avril 2009 à 20:49
Si je pose la question c'est qu'il y a une raison
Et quelle est cette raison ???
0
lucieb31 Messages postés 345 Date d'inscription mercredi 14 janvier 2009 Statut Membre Dernière intervention 28 juillet 2012 62 > loupius
24 avril 2009 à 21:14
fiddy a repondu a ma place.
merci
0
Nabla's Messages postés 18203 Date d'inscription mercredi 4 juin 2008 Statut Contributeur Dernière intervention 28 avril 2014 3 193
24 avril 2009 à 09:21
pour vider le buffer du clavier, on peut aussi faire fflush(stdin) ;
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
24 avril 2009 à 10:41
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