Pep Le 12/09/2004 à 16:02Edité par Pep le 09/10/2004 à 19:51 Bonjour
Voila je suis un noob en C.
J'aurai voulu avoir de l'aide car je cree un mot de passe mais je crois que j'ai un probleme d'opérateur.
Le programme fonctionne mais il est inutile car je peux mettre n'importe quel chiffre et rentrer dans la calculette.
Voici la source:
}
}
}
Merci d'avance.#include <tigcclib.h>
// Main Function
void _main(void)
{
const char *text;
char buffer[10];
char a=8611,dialogkey,ptr;
HANDLE dialog;
while(TRUE)
{
text="Bienvenue sur ma ti89";
while(TRUE)
{
*buffer=0;
ptr=0;
if(!(dialog=DialogNewSimple(140,50))) return;
DialogAddTitle(dialog,"Password",BT_OK,BT_CANCEL);
if(a!=ptr)
DialogAddRequest(dialog,4,24,"Entrez le mot de passe",0,5,5)*ptr;
else
{
text="Access Granted";
DialogAddText(dialog,4,24,"You can enter in my Ti89");
return;
}
DialogAddText(dialog,4,15,text);
dialogkey=DialogDo(dialog,CENTER,CENTER,buffer,NULL);
HeapFree(dialog);
if(dialogkey!=13) return;
if(a==ptr) break;
if(a=ptr) text="Access Granted";
if (a!=ptr) text="Access Denied";
Pep Le 09/10/2004 à 19:33 J'ai toujours un probleme avec mon code source le programme fonctionne mais quand je rentre le mot passe cnesé etre le bon il ne clos pas le programme.
Voici la source:
#include <tigcclib.h>
void _main(void)
{
int dialogkey;
const char *text;
char buffer[10];
const char *a="8611";
char *p;
HANDLE dialog;
while(TRUE)
{
text="Bienvenue sur ma ti89";
p=0;
while(TRUE)
{
if(!(dialog=DialogNewSimple(140,50)))return;
DialogAddTitle(dialog,"Password",BT_OK,BT_CANCEL);
DialogAddRequest(dialog,4,24,"Entrez le mot de passe",0,5,5),p;
DialogAddText(dialog,4,15,text);
dialogkey=DialogDo(dialog,CENTER,CENTER,buffer,NULL);
HeapFree(dialog);
if(dialogkey!=13) return;
if (!strcmp(a,p)) break;
else
{
text="Access Denied";
}
}
}
}
Pep Le 09/10/2004 à 19:57 D'accord j'ai compris mais j'utilise buffer dans la fonction strcmp mais cela ne fonctionne toujours et je ne comprend pas que ce soit stocké dans buffer.Aurais tu des tutos à me conseiller?
}
}
}
} Enfin j'ai recorriger la source:#include <tigcclib.h>
void _main(void)
{
int dialogkey;
const char *text;
char buffer[10];
const char *a="8611";
HANDLE dialog;
while(TRUE)
{
text="Bienvenue sur ma ti89";
while(TRUE)
{
if(!(dialog=DialogNewSimple(140,50)))return;
DialogAddTitle(dialog,"Password",BT_OK,BT_CANCEL);
DialogAddRequest(dialog,4,24,"Entrez le mot de passe",0,5,5);
DialogAddText(dialog,4,15,text);
dialogkey=DialogDo(dialog,CENTER,CENTER,buffer,NULL);
HeapFree(dialog);
if(dialogkey!=13) return;
if (!strcmp(a,buffer)) break;
else
{
text="Access Denied";
Zeph Le 09/10/2004 à 20:03 Tel quel, ton programme a une structure bizzare... Que le strcmp renvoie vrai ou faux, ça continuera de tourner en boucle à cause des deux while (TRUE).
Pour apprendre le C, va voir le lien dans la signature de squale92 (j'ai pas le temps de chercher ça maintenant, essaie de trouver un de ses posts ici ou bien dans la partie "Questions").

All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez
par ici :)
Pep Le 09/10/2004 à 21:27 Encore une question:
comment fais ton pour enlever l'ecriture en lettre qui est automatique??
Il y a pas mal d'erreurs dans ce code. Je vois au moins:
* utilisation de char quand il faut un char *
* utilisation de 8611 quand il faut "8611"
* utilisation de == ou != (voire = qui est complètement faux) au lieu de strcmp