Bonjour,
En ayant fait un code de saisie de mot de passe lequel permet d'une part de masquer les caractères saisies et deplus avertit si le nombre de caractères à saisir est dépassé. Le programme compile très bien sous DevC++
Ma première question est-ce que le code n'est pas trop lourd aurais je pu faire ça en une ou deux fonctions simples?
Et ma seconde question c'est que travaillant dans un système embarqué à base de microcontrolleur j'ai un compilateur specifique, mon compilateur est Keil C51 µVisoin2 quand je compile ce code j'ai un warning :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108 #include <conio.h> #include <string.h> #include <stdio.h> #define BEL 7 #define BS 8 unsigned int typeutil; int verifie_passe(char tentative[]) { char passe[] = "sesame"; int pos_caractere = 0; do { if (passe[pos_caractere] != tentative[pos_caractere]) return 0; pos_caractere++; } while (passe[pos_caractere] != '\0'); return 1; } char *lire_mp (void) { static char tampon[8]; size_t i = 0; char lettre; while ((lettre = getch ()) != '\r') { if (lettre == BS) { if (i > 0) { putch (lettre); putch (' '); putch (lettre); i--; } else { putchar (BEL); } } else { if (i < sizeof tampon - 1) { tampon[i] = lettre; i++; putch ('*'); } else { putchar (BEL); } } } tampon[i] = 0; return tampon; } void Users_mode() { unsigned char choiceuser; unsigned char pass[5]; int num_tries =0; typeutil=0; printf("Would you like to enter in administrator mode (Y/N) ?\n\n"); choiceuser=getchar(); if((choiceuser=='Y')||(choiceuser=='y')) { char tentative[81]; char *pwd; do { printf("\nEntrez le mot de passe :\n"); pwd = lire_mp (); } while (verifie_passe(pwd) == 0); printf("\nbienvenue\n"); typeutil = 1; printf("You are in administrator mode \n"); } if((choiceuser=='N')||(choiceuser=='n')) { typeutil = 0; //printf("You aren't in administrator mode \n"); } } int main() { //unsigned int typeutil; Users_mode(); getchar(); getchar(); return 0; }
*** WARNING C318 IN LINE 25 OF ADC.c: can't open file 'conio.h'
Et puis j'ai un problème d' error :
error C267: 'putch': requires ANSI-style prototype
à ce niveau de mon code :
putch (lettre);
en utilisant ceci: puts (lettre);
alors j'ai ce problème :
ADC.C(1147): error C214: illegal pointer conversion
Je ne sais pas comment integrer ce code ?
Merci
Partager