cs_snake57
Messages postés204Date d'inscriptionvendredi 19 novembre 2004StatutMembreDernière intervention 1 novembre 2011
-
26 févr. 2007 à 02:10
cs_snake57
Messages postés204Date d'inscriptionvendredi 19 novembre 2004StatutMembreDernière intervention 1 novembre 2011
-
26 févr. 2007 à 02:43
Bonjour, j'ai un ptit probleme avec un gets qui veux pas passer et je vois pas pourquoi. J'ai pas trop l'habitude d'utiliser des structures dnc le probleme est peut être très simple pour vous.
Bon voila mon code:
struct planete
{
char *nom;
int galaxie;
int systeme;
int place;
}planete[9];
for(i=1;i<nbrPlanete;i++) //allocation mémoire pour le nom des planètes.
{
planete[i].nom=(char*)malloc(20*sizeof(char));
}
for(j=1;j<nbrPlanete+1;j++)
{
printf("\n\n Saisissez le nom de votre planete numero %d : ",j);
gets(planete[j].nom);
printf("\n Saisissez la galaxie de votre planète numero %d : ",j);
scanf("%d",&planete[j].galaxie);
printf("\n Saisissez le systeme solaire de votre planete numero %d : ",j);
scanf("%d",&planete[j].systeme);
printf("\n Saisissez la place de votre planète numero %d : ",j);
scanf("%d",&planete[j].place);
}
C'est donc le gets qui a un pb. Quand j'execute le code. Le printf audessus du gets s'affiche puis directement le printf du dessous sans que je puisse saisir quoi que ce soit.
SAKingdom
Messages postés3212Date d'inscriptionlundi 7 novembre 2005StatutMembreDernière intervention16 février 200915 26 févr. 2007 à 02:39
Essais:
for(j=0;j<nbrPlanete;j++)
{
fflush(stdin); printf("\n\n Saisissez le nom de votre planete numero %d : ",j);
gets(planete[j].nom);
printf("\n Saisissez la galaxie de votre planète numero %d : ",j);
scanf("%d",&planete[j].galaxie);
printf("\n Saisissez le systeme solaire de votre planete numero %d : ",j);
scanf("%d",&planete[j].systeme);
printf("\n Saisissez la place de votre planète numero %d : ",j);
scanf("%d",&planete[j].place);
}
Aussi, si le membre nom de ta structure n'a jamais plus ou moin de 20 char, tu pourrais le déclarer en tableau directement dans la structure. Ça éviterais des allocations et libérations inutiles.
cs_snake57
Messages postés204Date d'inscriptionvendredi 19 novembre 2004StatutMembreDernière intervention 1 novembre 2011 26 févr. 2007 à 02:23
Oui je sais mais j'ignore cette première valeur dans tout mon programme afin de pouvoir compter "normalement" en commencant par le 1. Le pb ne vient donc pas de la.