Un menu en C
Résolu
info
-
fiddy Messages postés 11653 Date d'inscription Statut Contributeur Dernière intervention -
fiddy Messages postés 11653 Date d'inscription Statut Contributeur Dernière intervention -
Bonjour,
il me faut de l'aide pour sortir de la boucle si je tape Q.
voici mon programme:
http://pastebin.com/m22dd48cc
merci d'avance
il me faut de l'aide pour sortir de la boucle si je tape Q.
voici mon programme:
http://pastebin.com/m22dd48cc
merci d'avance
A voir également:
- Un menu en C
- Menu déroulant excel - Guide
- Menu démarrer - Guide
- Canon quick menu - Télécharger - Utilitaires
- Menu caché tv philips hotel - Forum TV & Vidéo
- Windows 11 menu démarrer classique - Guide
3 réponses
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
#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,
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?
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).