Bonjour a tous, voila cela fait maintenant deux jours que je fais un programme avec Visual Studio 2005 et deja apres avoir passé de longues heures a réparer tant bien que mal mes erreurs de syntaxe, lorsque je genere et qu'aucun probleme n'apparait alors, un message apparait "Exeption non gérée ... Violation d'accès lors de l'écriture". Ce probleme arrive lorsque j'indique le "code nationalite" lorsque j'y suis invité au lancement du programme. Et apres c'est donc le drame ...
Pouvez-vous m'aider s'il vous plait ?
Je vous joint mon bout de programme, je me doute que certes il est loin d'etre parfait, mais je viens de debuter
#include "stdafx.h"
#include "stdlib.h"
#include "windows.h"
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=0,doss=0,i;
skieur Tskieur[20];
CH20 nomlu;
CH2 nat;
CH10 natio;
CH2 libnat;
i=0;
char r;
// --------------------- PHASE 1:LES INSCRIPTIONS ---------------------
printf("Entrez un nom de candidat\n" );
gets_s(nomlu);
printf("Entrez la code nationalite du candidat\n" );
gets(nat);
while(nomlu[0]!='*')
{
if(nat!="FR" || nat!="IT" || nat!="LU" || nat!="PL" || nat!="CH" )
printf("LE CODE NATIONALITE %s EST INCONNU.\n VOTRE INSCRIPTION NE SERA PAS PRIS EN COMPTE.\n" );
else
{
for(i=0; i<=nbp; i=i+1)
{
if( strcmp(nomlu,Tskieur[i].nom)!=0 && strcmp(nat,Tskieur[i].nat)!=0 )
{
i=i+1;
strcpy(nomlu,Tskieur[nbp].nom);
gets_s(Tskieur[nbp].nat);
Tskieur[nbp].doss=nbp+1;
nbp=nbp+1;
}
else
printf("candidat deja enregistre\n" );
}//Fin du for
}
for(i=0;i<=nbp;i=i+1)
{
printf("%s %s %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();
if(r=='O')
{
printf("Tapez le code nationalite\n" );
gets_s(nat);
if(libnat=="FR" )
strcpy("FRANCE",natio);
if(libnat=="IT" )
strcpy("ITALIE",natio);
if(libnat=="LU" )
strcpy("LUXEMBOURG",natio);
if(libnat=="PL" )
strcpy("POLOGNE",natio);
if(libnat=="CH" )
strcpy("SUISSE",natio);
if(nbp=0)
printf("%s %s AUCUN INSCRIT\n",natio,libnat);
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
else
printf("code nationalite inconnu\n" );
}
}
}
if(natio!="FR" && nat!="IT" && nat!="LU" && nat!="PL" && nat!="CH" )
printf("CODE NATIONALITE %s INCORRECT\n",nat);
}
// --------------------- FIN DE LA PHASE 1 ---------------------
system("pause" );
}//Fin du programme
---
Un grand merci pour vos reponses, car je me doute ue parachuter un code comme cela n'est pas agreable , je suis désolé