Vérifier le saisie de 4 chiffres

marwamrewa Messages postés 141 Date d'inscription   Statut Membre Dernière intervention   -  
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
j'ai un programme c qui compare le chiffre saisie du clavier avec celui deja //
enregistré, et je ne sais pas comment le modifier pour vérifier un code de 4 chiffres j'ai besoin de votre aide et merci d'avance :)


#include <16f877.h>
#include <LCD421.c>
#include <kbd1.c>
#include <stdio.h>
#use delay(clock=20000000)

void main()
{
char r=0;
char a;

char code[4];  // déclaration de la variable où on va enregistrer 
               // le code à 4 chiffres

a="1";         // supposé le code enregistré

lcd_init();    // initialisation de l'afficheur
kbd_init();    // initialisation du keypad

lcd_gotoxy(1,1);
printf(lcd_putc,"Tapez votre code"); 
lcd_gotoxy(1,2);


while(true)
{
  r=kbd_getc();   // lecture du keypad
  
  if(r!=0)
  {
     printf(lcd_putc,"%c",r);  
      if(r==a)
      {
         printf(lcd_putc,"\fcode correcte");    // le (\f) pour effacer le msg précédant
         output_high(pin_E0);
      }
  
      if(r!=a)
      {
         printf(lcd_putc,"\fcode incorrecte");
         output_high(pin_E1);
      }
   }
}
}

A voir également:

2 réponses

marwamrewa Messages postés 141 Date d'inscription   Statut Membre Dernière intervention   3
 
je voudrais comparer un code composé de 4 chiffre avec un autre deja enregistré dans un pic !
1
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Pour comparer, on utilise strcmp() !
0
fiddy Messages postés 11069 Date d'inscription   Statut Contributeur Dernière intervention   1 846
 
Bonjour,

#include <LCD421.c>
#include <kbd1.c>
On n'importe pas de .c dans un code.

void main() n'existe pas en C -> int main(void)

a="1";
Impossible. a n'est pas un pointeur. Plutôt a='1'.
Mais que souhaites-tu ? Comparer des caractères ou des chaînes de caractères ? C'est différent.

Il faudrait plutôt faire :
char codeSaisie[4+1]; /*on garde une place pour le '\0'*/
char codeSecret[4+1];

Et pour comparer, tu pourras utiliser strcmp().

Et n'oublie pas return 0;

Cdlt,
0