Vidage du buffer dans tout les scanf par sécurité
continuous-integration/drone/push Build is passing Details

master
Rémi LAVERGNE 1 year ago
parent a015a1936d
commit 4fd98f2e4a

@ -18,27 +18,27 @@ void clientConstraint(float *weight, float *volume, float *price)
{ {
// Saisie des contraintes du client. // Saisie des contraintes du client.
printf("Entrez la charge maximale de votre véhicule en kilogrammes: "); printf("Entrez la charge maximale de votre véhicule en kilogrammes: ");
scanf("%f", weight); scanf("%f%*c", weight);
while (*weight < 0) while (*weight < 0)
{ {
printf("Erreur, le poids doit être positif, entrez la charge maximale de votre véhicule en kilogrammes: "); printf("Erreur, le poids doit être positif, entrez la charge maximale de votre véhicule en kilogrammes: ");
scanf("%f", weight); scanf("%f%*c", weight);
} }
printf("Entrez le volume du coffre de votre véhicule en mètres cubes: "); printf("Entrez le volume du coffre de votre véhicule en mètres cubes: ");
scanf("%f", volume); scanf("%f%*c", volume);
while (*volume < 0) while (*volume < 0)
{ {
printf("Erreur: le volume doit être positif, entrez le volume du coffre de votre véhicule en mètres cubes: "); printf("Erreur: le volume doit être positif, entrez le volume du coffre de votre véhicule en mètres cubes: ");
scanf("%f", volume); scanf("%f%*c", volume);
} }
printf("Entrez votre budget maximum ou -1 si vous n'en avez pas: "); printf("Entrez votre budget maximum ou -1 si vous n'en avez pas: ");
scanf("%f", price); scanf("%f%*c", price);
while (*price < 0 && *price != -1) while (*price < 0 && *price != -1)
{ {
printf("Erreur: le prix doit être positif, entrez votre budget maximum ou -1 si vous n'en avez pas: "); printf("Erreur: le prix doit être positif, entrez votre budget maximum ou -1 si vous n'en avez pas: ");
scanf("%f", price); scanf("%f%*c", price);
} }
} }
@ -97,7 +97,7 @@ int constraintExceeded(float weightConstraint, float volumeConstraint, float *pr
else else
{ {
printf("Vous pouvez utiliser votre cagnotte, dont le montant est de %.2f, entrez le montant à utiliser ou -1 si vous voulez retirer un article: ", *cagnotte); printf("Vous pouvez utiliser votre cagnotte, dont le montant est de %.2f, entrez le montant à utiliser ou -1 si vous voulez retirer un article: ", *cagnotte);
scanf("%f", &cagnotteUse); scanf("%f%*c", &cagnotteUse);
if (cagnotteUse == -1) if (cagnotteUse == -1)
return -1; return -1;
@ -107,7 +107,7 @@ int constraintExceeded(float weightConstraint, float volumeConstraint, float *pr
printf("Erreur: vous ne pouvez pas utiliser plus que vous n'avez, réessayez ou entrer -1 si vous souhaitez retirer un article: "); printf("Erreur: vous ne pouvez pas utiliser plus que vous n'avez, réessayez ou entrer -1 si vous souhaitez retirer un article: ");
if (totalPrice-cagnotteUse > *priceConstraint) if (totalPrice-cagnotteUse > *priceConstraint)
printf("Erreur: vous n'avez pas utilisé assez de votre cagnotte, vous devez utiliser au moins %.2f, veuillez rentrer le montant à utiliser ou -1 si vous voulez retirer un article: ", totalPrice - *priceConstraint); printf("Erreur: vous n'avez pas utilisé assez de votre cagnotte, vous devez utiliser au moins %.2f, veuillez rentrer le montant à utiliser ou -1 si vous voulez retirer un article: ", totalPrice - *priceConstraint);
scanf("%f", &cagnotteUse); scanf("%f%*c", &cagnotteUse);
if (cagnotteUse == -1) if (cagnotteUse == -1)
return -1; return -1;
*cagnotte -= cagnotteUse; *cagnotte -= cagnotteUse;
@ -137,7 +137,7 @@ void basket_add(int tab_reference[], float unitPrice[], float *cagnotte, int ba
int i, ref_to_add, qte_to_add, trouve, index_ajout; int i, ref_to_add, qte_to_add, trouve, index_ajout;
float total_weight[tmaxArticles], total_volume[tmaxArticles], total_price[tmaxArticles], total_cagnotte[tmaxArticles]; float total_weight[tmaxArticles], total_volume[tmaxArticles], total_price[tmaxArticles], total_cagnotte[tmaxArticles];
printf("Quelle référence souhaitez-vous ajouter au panier?"); printf("Quelle référence souhaitez-vous ajouter au panier?");
scanf("%d", &ref_to_add); scanf("%d%*c", &ref_to_add);
index_ajout = searchTab(tab_reference, ref_to_add, tlogItem, &trouve); index_ajout = searchTab(tab_reference, ref_to_add, tlogItem, &trouve);
while (trouve == 0) while (trouve == 0)
{ {
@ -147,11 +147,11 @@ void basket_add(int tab_reference[], float unitPrice[], float *cagnotte, int ba
} }
basket_tab_ref[index_ajout] = ref_to_add; basket_tab_ref[index_ajout] = ref_to_add;
printf("Quelle quantité de cet article souhaitez-vous ajouter au panier?"); printf("Quelle quantité de cet article souhaitez-vous ajouter au panier?");
scanf("%d", &qte_to_add); scanf("%d%*c", &qte_to_add);
while (qte_to_add <= 0) while (qte_to_add <= 0)
{ {
printf("Vous ne pouvez pas ajouter une quantité nulle ou négative ressayez"); printf("Vous ne pouvez pas ajouter une quantité nulle ou négative ressayez");
scanf("%d", &qte_to_add); scanf("%d%*c", &qte_to_add);
} }
for (i=*tlog_basket; i>=index_ajout; i--) for (i=*tlog_basket; i>=index_ajout; i--)
{ {
@ -189,27 +189,27 @@ void basket_del_article(int basket_tab_ref[], int basket_tab_qte[], int *tlog_ba
int ref_to_del, trouve, index_to_del, qte_to_del, i; int ref_to_del, trouve, index_to_del, qte_to_del, i;
printf("Quelle référence voulez vous supprimer de votre panier?\n"); printf("Quelle référence voulez vous supprimer de votre panier?\n");
scanf("%d",&ref_to_del); scanf("%d%*c",&ref_to_del);
index_to_del = searchTab(basket_tab_ref, ref_to_del, *tlog_basket, &trouve); index_to_del = searchTab(basket_tab_ref, ref_to_del, *tlog_basket, &trouve);
while (trouve == 0) while (trouve == 0)
{ {
printf("Erreur, la valeur que vous voulez supprimer n'existe pas, réssayez"); printf("Erreur, la valeur que vous voulez supprimer n'existe pas, réssayez");
scanf("%d",&ref_to_del); scanf("%d%*c",&ref_to_del);
index_to_del = searchTab(basket_tab_ref, ref_to_del, *tlog_basket, &trouve); index_to_del = searchTab(basket_tab_ref, ref_to_del, *tlog_basket, &trouve);
} }
if (basket_tab_qte[index_to_del]>1) if (basket_tab_qte[index_to_del]>1)
{ {
printf("Combien d'articles e ce type voulez-vous supprimer?"); printf("Combien d'articles e ce type voulez-vous supprimer?");
scanf("%d",&qte_to_del); scanf("%d%*c",&qte_to_del);
while(qte_to_del<=0) while(qte_to_del<=0)
{ {
errorHandling(-14); errorHandling(-14);
scanf("%d",&qte_to_del); scanf("%d%*c",&qte_to_del);
} }
while(basket_tab_qte[index_to_del]-qte_to_del>=0) while(basket_tab_qte[index_to_del]-qte_to_del>=0)
{ {
errorHandling(-12); errorHandling(-12);
scanf("%d",&qte_to_del); scanf("%d%*c",&qte_to_del);
} }
if (qte_to_del<basket_tab_qte[index_to_del]) if (qte_to_del<basket_tab_qte[index_to_del])
{ {

Loading…
Cancel
Save