Problème d'affichage
Résolu
milexarc
Messages postés
92
Date d'inscription
Statut
Membre
Dernière intervention
-
milexarc Messages postés 92 Date d'inscription Statut Membre Dernière intervention -
milexarc Messages postés 92 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
j'ai fait un programme en C.
#include <stdio.h>
int main (void) {
float somme, prix; int quantite; char reponse;
printf("Souhaitez-vous ajouter des articles ? O/N \n"); scanf("%c", &reponse);
somme = 0;
while (reponse == 'O') {
printf("Prix unitaire de l article : "); scanf("%f", &prix);
printf("Quantite achetee : "); scanf("%d", &quantite);
somme = somme + prix*quantite;
printf("Voulez-vous ajouter un autre article ? O/N"); scanf("%c", &reponse);
}
printf("Le montant total de vos achat est de %.2f euros", somme);
return 0;
}
le problème c'est que après avoir entré la quantité, il affiche directement Voulez-vous ajouter un autre article ? O/N. Le montant de vos achat est de .... €
Moi je voudrais que seul la question d'ajout d'une nouvel article apparaisse et que en fonction de la réponse, on recommence la boucle ou on la quitte.
Merci
j'ai fait un programme en C.
#include <stdio.h>
int main (void) {
float somme, prix; int quantite; char reponse;
printf("Souhaitez-vous ajouter des articles ? O/N \n"); scanf("%c", &reponse);
somme = 0;
while (reponse == 'O') {
printf("Prix unitaire de l article : "); scanf("%f", &prix);
printf("Quantite achetee : "); scanf("%d", &quantite);
somme = somme + prix*quantite;
printf("Voulez-vous ajouter un autre article ? O/N"); scanf("%c", &reponse);
}
printf("Le montant total de vos achat est de %.2f euros", somme);
return 0;
}
le problème c'est que après avoir entré la quantité, il affiche directement Voulez-vous ajouter un autre article ? O/N. Le montant de vos achat est de .... €
Moi je voudrais que seul la question d'ajout d'une nouvel article apparaisse et que en fonction de la réponse, on recommence la boucle ou on la quitte.
Merci
A voir également:
- Problème d'affichage
- Affichage double ecran - Guide
- Problème affichage fenêtre windows 10 - Guide
- Windows 11 affichage classique - Guide
- Problème affichage page internet google chrome - Forum Téléphones & tablettes Android
- Pinterest problème affichage ✓ - Forum Réseaux sociaux
simple curiosité : à quoi sert la fonction getchar() ? et que veux dire buffer claver ?
Dans ton cas, tu as fait : scanf("%f",&quantite); Lorsque l'utilisateur tape 5. Il y aura 5.0f qui ira dans la variable quantite. Et '\n' (touche entrée) qui ira dans le buffer clavier. Ensuite tu fais un scanf("%c",&reponse); La fonction lit le '\n' du buffer clavier. Donc reponse='\n'. D'où ton comportement. L'idée est donc de vider le buffer. Pour cela, il suffit d'utiliser des fonctions de lecture. Par exemple : getchar() (cela lit un caractère) récupérera le '\n'. Et tout rentre dans l'ordre.
Pour faire propre, il faudrait vider le buffer clavier avec un while((c=getchar()=!=EOF && c!='\n'); mais on ne va pas compliquer les choses ;-)