begin process at 2012 05 29 18:54:47
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Divers

 > 

pb structure + pointeur


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

pb structure + pointeur

lundi 26 février 2007 à 02:10:12 | pb structure + pointeur

snake57

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.
lundi 26 février 2007 à 02:20:59 | Re : pb structure + pointeur

SAKingdom

Membre Club
La première valeur d'un tableau est toujours située à 0 et non à 1 donc:

struct planete
{
     char *nom;
    int galaxie;
    int systeme;
    int place;
}planete[9];

for(i=0;i<nbrPlanete;i++) //allocation mémoire pour le nom des planètes.
    planete[i].nom=(char*)malloc(20*sizeof(char));
           
for(j=0;j<nbrPlanete;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++ (@++)

lundi 26 février 2007 à 02:23:35 | Re : pb structure + pointeur

snake57

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.
lundi 26 février 2007 à 02:39:43 | Re : pb structure + pointeur

SAKingdom

Membre Club
Réponse acceptée !
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.

C++ (@++)

lundi 26 février 2007 à 02:41:21 | Re : pb structure + pointeur

SAKingdom

Membre Club
Oups:
for(j=1;j<nbrPlanete;j++)

C++ (@++)

lundi 26 février 2007 à 02:43:28 | Re : pb structure + pointeur

snake57

Oui merci beaucoup en ajoutant le fflush (que je ne connaisssais pas) sa fonctionne.


Cette discussion est classée dans : pb, numero, printf, planete, gets


Répondre à ce message

Sujets en rapport avec ce message

pb avec gets() [ par redbob ] J'ai un probleme avec la fonction gets().Voici mon code:struct piece temp;printf("\nReference de la piece : "); get(temp.ref); fflush(st Un ptit pb en C, Debutant 2 . [ par Tkaos ] Voila encore un probleme, apres avoir appris a me servir du "if" j'ai fait ce petit programme :#include #include #include int main(void) { char szname Pb debutant "C" 2 [ par Tkaos ] Voila encore un probleme, apres avoir appris a me servir du "if" j'ai fait ce petit programme :#include #include #include int main(void){char szname[1 pb avec procedure [ par bidules ] bonjour,voila mon code(simplifier) :void affiche(int numero){cout }void main(){affiche(10);}et un message d'erreur apparait lors de la compilation pb programme très très simple [ par surfeurnet ] voila il s'agit d'un programme très simple qui ne fait pas d'erreurs à la compilation avec dev-cpp mais qui plante quand je l'exécute :#include char n Compte bancaire sous langage C/C++ [ par akanLG ] Salut, Je suis étudiant en informatique de gestion. Je prépare un mémoire de fin de cycle BTS. Mon thème s'intitule Application Bancaire sous Langage Pb peut etre de compilateur ?! Need Help please [ par Orezza ] Orezzasalut à tous, je ne comprends vraiment pas le Pb, le compilateur Visual C++ indique 0 erreur-0 warning, or kand j'execute mon prog des ke je ren problème de fonction [ par norton ] voila j'aimerai savoir pk mon compilateur me dit :"ain.cpp(41) : warning C4551: function call missing argument list"je débute en C++ voila mon code :# programme en C de gestion [ par fizou1989 ] bonjour; j ai besoin d 'aide je suis entrain de realiser un mini projet GMAO gestion de maintenance assistee par ordinateur , j ai realiser un progr switch case et gets [ par fab30 ] Bonjour, je travaille avec Dev c++ et lorsque que fait un prog contenant un gets dans un switch case ou dans une fonction appelée depuis un switch cas


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,186 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales