S_M_E
Messages postés26Date d'inscriptionmardi 27 février 2007StatutMembreDernière intervention29 août 2007
-
29 août 2007 à 13:01
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 2010
-
29 août 2007 à 13:29
bjr je souhaite utilisé lepréprocesseur afin de compiler une portion du progarmme selon condition (si oui compile portion 1, si non compile portion 2); voici mon prog mais il ne fonctionne pas comme voulu puisqu'il bloque à la portion 2, pouvez vous me corriger?
do{
clrscr();
PF("entrez le mot de passe pour continuer....\t");
i=0;
while((buffer[i]=getchar())!='\n')
i++;
buffer[i]='\0';
PF("le mot de passe que vous avez tapez est %s",buffer);
getchar();
if (strlen(buffer)>8) //test de la longeur du mot de passe
{
PF(" le mot de passe est trop long, recommencez....");
code=getchar();//variable de controle
}
if (strcmp(tab,buffer)==0) //test de comparaison entre le mot de passe saisie au mot de passe mémoriser
{
//test de comparaison ok
PF("bon mot de passe");
getchar();
code=27;//variable de contrôle
}
++numloop;
}while((code!=27&&numloop!=3));//fin de do while
if (((numloop==3)&&(code!=27))||((numloop==3)&&(code==27)))
#if defined CPR
//PORTION DU PROGAMME 1
#undef CPR
PF("FIN DU PROGRAMME...\n");
getche();
#endif
if ((code==27)&&(numloop!=3))
#if defined CPR
//PORTION DU PROGRAMME 2
............................
..........................
#endif
return 0;
}
void compteur(void)
{
static int f;
PF("\n");
PF("\n");
PF("\n\t");
do
{
for(f=0;f<30000;f++)
gotoxy(1,25);
PF(" %d",f);
f++;
}while(f<30000&&(getchar()!='\n'));
cs_juju12
Messages postés966Date d'inscriptionsamedi 3 avril 2004StatutMembreDernière intervention 4 mars 20104 29 août 2007 à 13:29
C'est normal tu fais #undef CPR fans la portion1 alors il pourra jamais faire la portion2. Ne perds pas de vue que les #ifdef et consorts sont résolus A LA COMPILATION et pas à l'exécution. Ce que je te suggère et de mettre tes deux parties dans un seul bloc:
#ifdef CPR
if (((numloop==3)&&(code!=27))||((numloop==3)&&(code==27)))
{
PF("FIN DU PROGRAMME...\n");
getche();
}
else if ((code==27)&&(numloop!=3))
{
// ...
}
#endif