Bonjour à tous je suis un débutant en programmation C. Ma boucle ci-dessous ne fonctionne pas comme j'espérais c'est à dire répéter les instructions de la boucle l'une après l'autre dans chaque itération. Au lieu de cela, à partir de la deuxième itération, seules la première et la troisième instruction qui s'exécutent et au même moment. la deuxième et la quatrième instruction ne s'exécutent plus (voir image plus bas). Aidez SVP
#include <stdio.h>
#include <stdlib.h>
int Qte, qt;
char nom, ok ;
char x;
void main()
{
int reponse;
do{
reponse=0;
printf("entrez le nom de l’article\n");
scanf("%c",&nom);
printf("entrez la quantité de l’article\n");
scanf("%d",&Qte);
printf("voulez vous enregistrer un autre article?\n");
scanf("%d",&reponse);
}while(reponse==1);
}
Salut. C'est dû à un problème subtil que tu verras plus tard dans le cours, tu peux faire des recherches sur "buffer dans le langage C" si tu veux comprendre maintenant. En attendant tu peux régler ton problème ici en mettant un espace avant "%c", comme ça
C'est plus qu'une question de vidage de "buffer". C'est la validation de ce qu'on lit.
Dans le cours de Mathieu Nebra sur le langage C, il y a la section suivante:
«La saisie de texte sécurisée»
Même si GSPM est novice, il n'est pas mauvais qu'il prenne conscience dès maintenant que les utilisateurs éventuels de ses programmes ne seront pas toujours des utilisateurs gentils qui vont entrer exactement ce que le programme attend.
Il y aura des utilisateurs lambda qui seront malhabiles et pire, des utilisateurs malveillants qui voudront foutre la m... dans ses programmes.
Une bonne partie du code qu'on écrit est l'interface avec les humain. On ne doit rien prendre pour acquis.
Le Tout est souvent plus grand que la somme de ses parties.
Je ne pense pas que ça soit important avec le niveau qu'il a, ça ne fera que l'embrouiller tout au plus.
- Edité par kulturman 8 décembre 2019 à 20:22:52
la boucle do...while
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
Le Tout est souvent plus grand que la somme de ses parties.