Un menu en C
Résolu/Fermé
info
-
24 déc. 2008 à 17:29
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 24 déc. 2008 à 19:11
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 24 déc. 2008 à 19:11
A voir également:
- Un menu en C
- Menu déroulant excel - Guide
- Windows 11 menu démarrer classique - Guide
- Canon quick menu - Télécharger - Utilitaires
- Réinitialiser menu démarrer windows 10 - Guide
- Excel menu déroulant en cascade - Guide
3 réponses
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 841
24 déc. 2008 à 17:46
24 déc. 2008 à 17:46
Salut,
Je t'ai changé plusieurs choses dans ton code, comme l'inclusion de stdio.h et non d'iostream.
fflush(stdin); n'est pas standard et il vaut mieux faire le : while(getchar()!='\n');
Voilà, ça devrait marcher je pense :
Cdlt
Je t'ai changé plusieurs choses dans ton code, comme l'inclusion de stdio.h et non d'iostream.
fflush(stdin); n'est pas standard et il vaut mieux faire le : while(getchar()!='\n');
Voilà, ça devrait marcher je pense :
#include <stdio.h> int main(void){ int a,b; char ch; ch='B'; while(ch!='Q') { printf("A:add\n"); printf("S:sous\n"); printf("M:multi\n"); printf("D:div\n"); printf("Q:quit\n"); printf("taper un caractere\n"); scanf("%c",&ch); while(getchar()!='\n'); if(ch=='Q') break; printf("taper deux nombres\n"); scanf("%d %d",&a,&b); while(getchar()!='\n'); switch(ch){ case 'A':printf("%d\n",a+b); break; case 'S':printf("%d\n",a-b); break; case 'M':printf("%d\n",a*b); break; case 'D':printf("%.2f\n",(float)a/b); break; default:printf("mauvaise tape\n"); break; } } return 0; }
Cdlt
sadektlili
Messages postés
139
Date d'inscription
mardi 16 décembre 2008
Statut
Membre
Dernière intervention
3 avril 2010
4
24 déc. 2008 à 18:14
24 déc. 2008 à 18:14
#include <iostream>
int main(){
int a,b;
char ch;
ch='B';
while(ch!='Q')
{
printf("A:add\n");
printf("S:sous\n");
printf("M:multi\n");
printf("D:div\n");
printf("Q:quit\n");
printf("taper un caractere\n");
fflush(stdin);
scanf("%c",&ch);
if(ch!='Q'){ //un if qui manque
printf("taper deux nombres\n");
scanf("%d %d",&a,&b);
switch(ch){
case 'A':printf("%d\n",a+b);
break;
case 'S':printf("%d\n",a-b);
break;
case 'M':printf("%d\n",a*b);
break;
case 'D':printf("%.2f\n",(float)a/b);
break;
default:printf("mauvaise tape\n");
break;
}
}
}
}
int main(){
int a,b;
char ch;
ch='B';
while(ch!='Q')
{
printf("A:add\n");
printf("S:sous\n");
printf("M:multi\n");
printf("D:div\n");
printf("Q:quit\n");
printf("taper un caractere\n");
fflush(stdin);
scanf("%c",&ch);
if(ch!='Q'){ //un if qui manque
printf("taper deux nombres\n");
scanf("%d %d",&a,&b);
switch(ch){
case 'A':printf("%d\n",a+b);
break;
case 'S':printf("%d\n",a-b);
break;
case 'M':printf("%d\n",a*b);
break;
case 'D':printf("%.2f\n",(float)a/b);
break;
default:printf("mauvaise tape\n");
break;
}
}
}
}
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 841
24 déc. 2008 à 18:55
24 déc. 2008 à 18:55
Salut,
Tu utilises la mauvaise bibliothèque et tu oublies de vider le buffer. Ce qui causera un petit ennui lors de l'itération ;)
Tu utilises la mauvaise bibliothèque et tu oublies de vider le buffer. Ce qui causera un petit ennui lors de l'itération ;)
fiddy,
chez moi je n'ai pas la laibrairie<stdio.h>
tu as modifié des choses merci.
mais par rapport à mon programme de base, ya t-il réellement un souci pour sortir de la boucle?
faut-il que j'ajoute un if?
chez moi je n'ai pas la laibrairie<stdio.h>
tu as modifié des choses merci.
mais par rapport à mon programme de base, ya t-il réellement un souci pour sortir de la boucle?
faut-il que j'ajoute un if?
fiddy
Messages postés
11069
Date d'inscription
samedi 5 mai 2007
Statut
Contributeur
Dernière intervention
23 avril 2022
1 841
24 déc. 2008 à 19:11
24 déc. 2008 à 19:11
Bah si tu utilises iostream, utilise plutôt cout.
Enfin, si ça marche comme ça...
Sinon, prends le code que j'ai donné, et remplace donc stdio.h par iostream, et ça marchera.
J'ai rajouté un if en plus et des while(getchar()!='\n') après chaque scanf pour vider le buffer clavier.
(fflush n'est pas standard sur le flux d'entrée).
Enfin, si ça marche comme ça...
Sinon, prends le code que j'ai donné, et remplace donc stdio.h par iostream, et ça marchera.
J'ai rajouté un if en plus et des while(getchar()!='\n') après chaque scanf pour vider le buffer clavier.
(fflush n'est pas standard sur le flux d'entrée).