Probleme dans la boucle do... while
Rahmaa
-
Dalfab Messages postés 720 Statut Membre -
Dalfab Messages postés 720 Statut Membre -
Bonjour,
j'ai rencontré un problème au niveau boucle do...while. En effet, au cours d' une exécution quand il y a du printf elle l'affiche deux fois successivement
j'ai rencontré un problème au niveau boucle do...while. En effet, au cours d' une exécution quand il y a du printf elle l'affiche deux fois successivement
void main(){
char r;
int pos,i;
carnet c;
personne p;
char ch[32];
c.n=0;
do{
printf("\nMenu :\n [A] : Ajouter une personne au Carnet\n [D] : Supprimer une personne au Carnet\n [V] : Affichage du carnet\n [S] : Recherche d’une personne dans au Carnet \n [T] : Trier les personne dans un carnet par ordre alphabétique \n [Q] : Quitter\n");
printf("votre reponse : ");
scanf("%c",&r);
if(r=='A'){
p=creer();
c=add(c,p); }
/*else if(r=='D'){
printf("donner la position de personne a supprime");
scanf("%d",&pos);
c=Del(c,pos);}*/
else if(r=='V'){
afficheC(c);}
else if(r=='S'){
printf("tapez le nom a cherche");
scanf("%s",ch);
if(recherche(c,ch)==0){printf("\n numero introuvable");}
else printf("\nce numero se trouve dans la position %d",recherche(c,ch));}
/*else if(r=='T'){
trier(c);}*/
}while(r!='Q');
}
| EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI Merci d'y penser dans tes prochains messages. |
A voir également:
- Probleme dans la boucle do... while
- My people do - Télécharger - Organisation
- Do not turn off target traduction - Forum Samsung
- Samsung galaxy tab S Bloquer Downloading do not turn off target - Forum Téléphones & tablettes Android
- Mon pc s'allume et s'éteint en boucle ✓ - Forum Matériel & Système
- Fichier .do ✓ - Forum PDF
2 réponses
yg_be
Messages postés
24281
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 585
bonsoir, ton code contient quatre printf: peux-tu expliquer exactement ce qui est affiché, et dans quel ordre?
Bonjour,
Pour entrer un caractère, on doit saisir ce caractère puis taper un retour chariot. Le programme reçoit alors 2 caractères avec en second le retour chariot. Il faut donc 2
Il faut éviter
On peut aussi écrire
Pour entrer un caractère, on doit saisir ce caractère puis taper un retour chariot. Le programme reçoit alors 2 caractères avec en second le retour chariot. Il faut donc 2
scanf("%c") pour extraire ce qui a été saisi.
Il faut éviter
scanf("%c",&r), on peut faire fgets(ligne,sizeof(ligne),stdin); r = ligne[0];.
On peut aussi écrire
scanf(" %c ",&r); qui marche dans des cas simples (l'espace dans la chaîne de format permet d'ignorer les caractères espaces, tabulations, retours chariots,...)