1

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";                               

2

Comme d'hab:
 
#include <tigcclib.h>

void _main(void)
{
  const char *text;
  char buffer;
  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";

    }
  }
} 

3

Tu as deja un problème avec ton char a=8611 (regarde le type char ce que c'est)
Pour le mot de passe, d'apres ce que tu fais, tu compares une chaine de caractère avec ce que tu aurais voulu être un entier.

Tu dois comparer deux chaines de caractères:

const char *a = "8611";
char *text = "hugh"; // mot de passe entré

if (!strcmp(a,text))
  break; // ils sont égaux


Puis le coup de mettre char buffer puis *buffer = 0 triso

Enfin, je pense que tu ne sais pas ce que tu fais.
Regarde un petit tuto sur les pointeurs.

4

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";                 }      }    }  } 

5

nEUrOO :
Puis le coup de mettre char buffer puis *buffer = 0 triso

Enfin, je pense que tu ne sais pas ce que tu fais. Regarde un petit tuto sur les pointeurs.

Il n'a pas déclaré "char buffer" mais "char buffer[10];". Simplement à cause d'un bug de yAronet, le [10] est parsé comme une balise de couleur (édite le premier post). La source que tu as mise en [pre] n'est pas valide. Sinon, ton code est faux. Déjà, la ligne "DialogAddRequest(dialog,4,24,"Entrez le mot de passe",0,5,5),p;" n'a aucun effet (enfin plus particulièrement le ,p). Le mot de passe est enregistré dans "buffer", que tu passes en argument à la fonction DialogDo. C'est ce même buffer que tu dois utiliser pour le strcmp, et non pas p, dont le contenu est inconnu a priori (tu ne l'as pas défini).
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

6

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";      

7

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").
avatar
All right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)

8

Encore une question:
comment fais ton pour enlever l'ecriture en lettre qui est automatique??

9

essaie de trouver un de ses posts ici

un post ici smile

donc, à l'URL dans ma signature, tu trouveras la nouvelle version de mon tutorial C (en cours de ré-écriture)
sinon, sur www.ti-fr.com tu trouveras l'ancienne version (qui contient pas mal de petites erreurs, mais qui est plus complète)

me fait penser qu'il serait interessant que je distribue l'ancienne version de mon tuto via mon site, aussi
avatar
Tutorial C (TI-89/92+/v200) - Articles Développement Web (PHP, Javascript, ...)
« What is the sound of Perl? Is it not the sound of a wall that people have stopped banging their heads against? » - Larry Wall

10

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
avatar
Mes news pour calculatrices TI: Ti-Gen
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité