Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2660 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  impasse sur une variable ...

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

impasse sur une variable ...

n°1464950
Zoltan87
Posté le 25-10-2006 à 17:21:55  profilanswer
 

Bonjour a tous,
Je me trouve face a une situation plutot difficile (pour moi xD); en effet je suis en train de travailler sur un programme, et dans celui-ci à un moment le programme dois interroger l'utilisateur concernant une nationalite, le seul probleme, et que je n'arrive pas a resoudre cela va de soi, c'est que lorsque j'execute le programme, au lieu de me demander cette fameuse nationalité, il fait directement impasse dessus et m'ecrit "code nationalite inconnu" comme dans le cas ou elle aurait ete non valavke; le seul hic etant ue je ne l'ai pas tapée ...
 
Je me permet de vous copier la source avec en gras le moment ou ce probleme apparait:
 
 

typedef char CH15[16];
typedef char CH2[3];
typedef char CH20[21];
typedef char CH10[11];
 
struct skieur {  CH15 nom; CH2 nat;int doss; };
void main()
{
 int nbp,doss,i;
 skieur Tskieur[20];
 CH20 nomlu;
 CH2 nat;
 CH2 codnat;
 CH10 natio;
 i=0;
 nbp=0;
 doss=0;
 char r;
 
// ---------------------  PHASE 1:LES INSCRIPTIONS  ---------------------  
 
printf("Entrez un nom de candidat\n" );  
gets(nomlu);
printf("Entrez le code nationalite du candidat\n" );
gets(nat);
if(nomlu[0]!='*')
{
if(strcmp(nat,"FR" )!=0 && strcmp(nat,"IT" )!=0 && strcmp(nat,"LU" )!=0 && strcmp(nat,"PL" )!=0 && strcmp(nat,"CH" )!=0)
printf("LE CODE NATIONALITE %s EST INCONNU.\n VOTRE INSCRIPTION NE SERA PAS PRIS EN COMPTE.\n",nat);
for(i=0; i<=nbp; i=i+1)
{  
 if( strcmp(nomlu,Tskieur[i].nom)!=0 && strcmp(nat,Tskieur[i].nat)!=0 )//Test que le nom n'est pas deja present avec la nationalite entrée
 {
  i=i+1;
  strcpy(nomlu,Tskieur[nbp].nom);
  strcpy(nat,Tskieur[nbp].nat);
  Tskieur[nbp].doss=nbp;
  nbp=nbp+1;
 }
 else
printf("candidat deja enregistre\n" );
}//Fin du for
 }
 for(i=0;i<=nbp;i=i+1)
 {
  printf("%s \n %s \n %d\n",Tskieur[i].nom,Tskieur[i].nat,Tskieur[i].doss);
 }
 printf("Voulez-vous afficher les candidats par nationalité ? (O pour OUI et N pour NON) \n" );
 r=getchar();
 while(r='O')
 {
  printf("AFFICHAGE DES CANDIDATS\n" );  
  system("pause" );
 printf("Entrez le code nationalite du candidat\n" );
   gets(nat);
  if(strcmp(nat,"FR" )!=0 && strcmp(nat,"IT" )!=0 && strcmp(nat,"LU" )!=0 && strcmp(nat,"PL" )!=0 && strcmp(nat,"CH" )!=0)
  {
   printf("LE CODE NATIONALITE %s EST INCONNU.\n ",nat);
  }

  if(codnat=="FR" )strcpy("FRANCE",natio);
  if(codnat=="IT" )strcpy("ITALIE",natio);
  if(codnat=="LU" )strcpy("LUXEMBOURG",natio);
  if(codnat=="PL" )strcpy("POLOGNE",natio);
  if(codnat=="CH" )strcpy("SUISSE",natio);
  if(nbp=0)
   printf("%s %s AUCUN INSCRIT\n",natio,codnat);  
  if(nbp>0)
  {
   for(i=0;i<=nbp;i=i+1)
   {
    if(strcmp(nat,Tskieur[i].nat)==0)
     printf("%s %s %d\n",Tskieur[i].nom,Tskieur[i].nat,Tskieur[i].doss);//ecrire ausse le libelle nationalite
   }
  }
 system("pause" );
 }
 
 
 
 
// ---------------------  FIN DE LA PHASE 1  ---------------------  
 
 system("pause" );
 }//Fin du programme

 
 
 
Voila, sinon j'utilise Visual Studio 2005. Je suis désolé de copier un code comme ca, je sais que ce n'est pas tres lisible comme ca mais je suis vraiment a court de solutions.
Merci beaucoup de votre aide

mood
Publicité
Posté le 25-10-2006 à 17:21:55  profilanswer
 

n°1464960
masklinn
í dag viðrar vel til loftárása
Posté le 25-10-2006 à 17:27:32  profilanswer
 

Il faut éviter d'utiliser gets, surtout quand on ne le comprend pas.
 
1. C'est une fonction C, donc il n'y a pas lieu de l'utiliser si tu fais du C++ (mais je crois que tu t'es planté de cat, je ne vois que du C dans ton programme)
2. http://mapage.noos.fr/emdel/notes.htm#saisie (je te conseille de lire le reste du site, il est très instructif quand on débute)
3. Pour le forum, si tu veux poster du code précède le de [code] et ferme le avec [/code]


Message édité par masklinn le 25-10-2006 à 17:27:55

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1464983
Zoltan87
Posté le 25-10-2006 à 17:51:49  profilanswer
 

en fait, le probleme c'est que c'est ce qu'on nous apprend en cours, utiliser la fonction gets donc je vois pas quoi utiliser d'autre, a mon avis ca doit etre possible comme cela nan ?

n°1464985
masklinn
í dag viðrar vel til loftárása
Posté le 25-10-2006 à 17:53:43  profilanswer
 

Zoltan87 a écrit :

en fait, le probleme c'est que c'est ce qu'on nous apprend en cours


C'est quand même une fonction à ne pas utiliser [:spamafote]  

Zoltan87 a écrit :

utiliser la fonction gets donc je vois pas quoi utiliser d'autre, a mon avis ca doit etre possible comme cela nan ?


Tu as lu le site dont je t'ai filé l'adresse?


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1465002
Zoltan87
Posté le 25-10-2006 à 18:19:15  profilanswer
 

oui j'ai lu, attentivement, mais je comprends pas, moije voudrais inviter a saisir une chaine de deux caracteres donc la fonction a utiliser serait gets ... me trompe-je ?

n°1465008
masklinn
í dag viðrar vel til loftárása
Posté le 25-10-2006 à 18:33:37  profilanswer
 

fgets


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1465011
Zoltan87
Posté le 25-10-2006 à 18:40:39  profilanswer
 

merci Masklinn


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  impasse sur une variable ...

 

Sujets relatifs
tester la valeur d'une variable saisiTest variable vide
exec + variable phpquestions variable propagée et css
variable de session pour un sous domainevariable flash => php
fonction qui renvoie le type d'une variableRécupération variable d'une page à l'autre sans formulaire
[RESOLU] affichage de 'Resource id #5' au lieu de ma variableProbleme de variable
Plus de sujets relatifs à : impasse sur une variable ...


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR