[C]faire qu'une saisie n'apparaisse pas telqu'elle a l'ecran...

faire qu'une saisie n'apparaisse pas telqu'elle a l'ecran... [C] - C++ - Programmation

Marsh Posté le 17-02-2003 à 16:01:46    

bonjour,
j'aimerais juste savoir comment faire pour que lorsque l'on ecris quelquechose dans un prg en C cette saisie ne s'affiche pas a l'ecran telqu'elle mais sous une forme differente. Comme lors de la saisie d'un mot de passe se transforme en ******.
je suis sous Win XP et mon compilo est borland Builder 6
 
Merci
 
 [:frenzy]


Message édité par albino13 le 17-02-2003 à 16:03:13
Reply

Marsh Posté le 17-02-2003 à 16:01:46   

Reply

Marsh Posté le 17-02-2003 à 17:53:09    

Y'a pas de methode standard.
Faut utiliser une fonction qui permet de lire un caractere tapé sans l'afficher (=> getch) et simplement afficher un '*' une fois que c'est fait.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 17-02-2003 à 18:22:54    

HelloWorld a écrit :

Y'a pas de methode standard.
Faut utiliser une fonction qui permet de lire un caractere tapé sans l'afficher (=> getch) et simplement afficher un '*' une fois que c'est fait.


merci beaucoup en tout cas  [:zerod]

Reply

Marsh Posté le 17-02-2003 à 20:30:48    

sous builder en utilisant un TEdit il te suffit d'indiquer dans la propriété PasswordChar le caractère qui servira à masquer par exemple *
 
et il s'agit bien d'une fonctionnalité standard de windows


Message édité par taureau le 17-02-2003 à 20:34:18
Reply

Marsh Posté le 18-02-2003 à 00:23:22    

Arf.
Moi j'ai lu "prog en C", j'ai donc compris qu'il programmait en C ANSI dans une console, et pas en C++ avec la VCL avec une interface.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 18-02-2003 à 08:58:23    

HelloWorld a écrit :

Arf.
Moi j'ai lu "prog en C", j'ai donc compris qu'il programmait en C ANSI dans une console, et pas en C++ avec la VCL avec une interface.
 


mais tu avais tres bien lu... c'est du C que je fais donc je vais devoir me plier a ta solution  :pt1cable:  :)  :)  :)  :sol:

Reply

Marsh Posté le 18-02-2003 à 09:09:23    

arf  :D  
 
remarque la gestion standard windows n'est pas très sécure alors pour plus de sécurité là aussi il vaut mieux se bidouiller son propre brouilleur  :D

Reply

Marsh Posté le 18-02-2003 à 09:35:32    

Cela dit getch on la trouve quand même à peu près partout.


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 18-02-2003 à 12:39:47    

[:frenzy]  [:frenzy]  [:frenzy] [:frenzy]
merci beaucoup ca marche nickel  
 
 

Code :
  1. char ps,chaine[50],motPass[6]="albino";
  2. int i=0,x;
  3. void PW (void)
  4. {
  5.   textcolor(12);
  6.   gotoxy(25,2);cprintf("****************************************\n" );
  7.   gotoxy(25,8);cprintf("****************************************\n" );
  8.   textcolor(8);
  9.   gotoxy(25,4);cprintf("Outil d'aide a la prise de commande\n\n" );
  10.   gotoxy(25,6);cprintf("Touche espace pour effacer" );
  11.   gotoxy(25,5);cprintf("Veuillez saisir le Mot de Passe " );
  12.   while(ps!=13)
  13.   {
  14.     ps=getch();
  15.     if(ps!=13)  //valeur ASCII de la touche 'ENTREE'
  16.     {
  17.       if(ps!=32) //valeur ASCII de la touche 'ESPACE'
  18.       {
  19.         chaine[i]=ps;
  20.         printf("*" );
  21.         i++;
  22.       }
  23.       else
  24.       {
  25.         clrscr();
  26.         PW();
  27.       }
  28.     }
  29.   }
  30.   x=strcmp(chaine,motPass);
  31.   if(x!=0)
  32.   {
  33.     clrscr();textcolor(12);
  34.     gotoxy(25,2);cprintf("Mot de passe incorrect\n" );
  35.     getch();
  36.     abort();
  37.   }
  38.   else
  39.   {
  40.     fmenuPrincipal();
  41.   }
  42. }

 
 
C'est pour mes etudes alors un grand merci encore une fois :sol:

Reply

Marsh Posté le 18-02-2003 à 20:13:01    

Citation :

if(ps!=13)  //valeur ASCII de la touche 'ENTREE'  
   {  
     if(ps!=32) //valeur ASCII de la touche 'ESPACE'  


 

Code :
  1. if(ps!='\r')   {
  2.      if(ps!=' ')


 
:)


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Marsh Posté le 18-02-2003 à 20:13:01   

Reply

Marsh Posté le 19-02-2003 à 19:46:56    

HelloWorld a écrit :

Citation :

if(ps!=13)  //valeur ASCII de la touche 'ENTREE'  
   {  
     if(ps!=32) //valeur ASCII de la touche 'ESPACE'  


 

Code :
  1. if(ps!='\r')   {
  2.      if(ps!=' ')


 
:)


 
tu va pouvoir eclairer ma lanterne alors... comment je fais pr dire  egal a la touche entrée car ='\n' ... il aime pô  :sarcastic:  
 
 
 :D  :D  :D

Reply

Marsh Posté le 19-02-2003 à 20:36:06    

T'utilises bien == et pas = hein ?
Carriage return = '\r'


---------------
FAQ fclc++ - FAQ C++ - C++ FAQ Lite
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed