Probleme avec gets()
Résolu
diocool
Messages postés
367
Date d'inscription
Statut
Membre
Dernière intervention
-
diocool Messages postés 367 Date d'inscription Statut Membre Dernière intervention -
diocool Messages postés 367 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
quand je saisis un tableau d'enregistrement, arrivé à un point où je dois saisir une chaîne cette étape est sautée à l'exécution et le programme passe à la saisie suivante.
Merci de bien vouloir m'aider
quand je saisis un tableau d'enregistrement, arrivé à un point où je dois saisir une chaîne cette étape est sautée à l'exécution et le programme passe à la saisie suivante.
Merci de bien vouloir m'aider
2 réponses
Salut,
scanf("%d",&p[i].nump); Tu dois passer l'adresse dans le scanf.
Même remarque pour p[i].pu.
Ensuite, pour libp, cela saute à cause du \n stocké dans le buffer.
Pour cela place avant ton gets, place l'instruction :
Et enfin, il ne faut jamais utiliser gets. A la place, tu peux utiliser :
Cdlt
scanf("%d",&p[i].nump); Tu dois passer l'adresse dans le scanf.
Même remarque pour p[i].pu.
Ensuite, pour libp, cela saute à cause du \n stocké dans le buffer.
Pour cela place avant ton gets, place l'instruction :
while(getchar()!='\n');
Et enfin, il ne faut jamais utiliser gets. A la place, tu peux utiliser :
fgets(p[i].libp,50,stdin);
Cdlt
struct produits
{ int nump;
float pu;
char libp[50];
}; struct produits p[nbp];
void creer_prod(int *NBP)
{ char rep; *NBP=0;
do
{ printf("\nNombre de produits saisis: %d",*NBP);
printf("\nNum‚ro produit: ");
scanf("%d",p[*NBP].nump);
printf("\nPrix Unitaire: ");
scanf("%f",p[*NBP].pu);
printf("\nLibell‚: ");
gets(p[*NBP].libp);
*NBP++;
printf("\nAjouter? (Oui:O/Non:N): ");
gets(&rep);
}while(rep!='N' && rep!='n' && rep=='O' || rep=='o');
}
Aidez moi svp.
Je ne comprends pas pourquoi à la saisie, la saisie du libellé est sautée pendant l'exécution.
struct produits
{ int nump;
int pu;
char libp[50];
}; struct produits p[5];
main()
{ int i;
clrscr();
for(i=0;i<5;i++)
{ printf("\nNuméro produit: ");
scanf("%d",p[i].nump);
printf("\nPrix Unitaire: ");
scanf("%d",p[i].pu);
printf("\nLibellé: ");
gets(p[i].libp);
}
getch();
}