bonjour,
je voudrais savoir si il existe une fonction en C qui permet d'afficher des * quand on tape des lettres ou chifffres (comme pour un mot de passe) ?
merci de vos reponses.
Version imprimable
bonjour,
je voudrais savoir si il existe une fonction en C qui permet d'afficher des * quand on tape des lettres ou chifffres (comme pour un mot de passe) ?
merci de vos reponses.
à ma connaissance aucune fonctions dans les librairies standars ne fait ça par contre tu peu trés bien la realiser.
comment pourrait-on la réaliser ?
Au lieu d'attendre un EOL pour récuperer des caractères, tu récupère les données à l'appui de la touche.
Tu désactive l'affichage des caractères tapés et à chaque fois que tu récupères un nouveau caractère, tu affiche une *.
Je sais que c'est faisable en termcaps, mais je ne suis pas sûr que ce soit la manière la plus efficace.
Code:
1
2
3
4
5
6
7
8
9
10 //... char caractere = 0; caractere = getchar(); while (getchar() != '\n') ; printf("*"); // ...
Ne repond pas a la question, puisque l'affichage des caracteres tapes au clavier se fait (getchar n'empeche rien). Une reponse, utilisant ncurses, est ici.Citation:
Envoyé par LeTsIrGoD
merci pour le lien, mais j'ai du mal a faire marcher cette fonction, et quels sont les paramètres à mettre dans cette fonction ?
Salut,
Au cas où tu n'aurai toujours pas compris comment faire fonctionner la fonction.
pbuff -> pointeur sur ton tableau de caractèreCode:
1
2 size_t getpassword (char *pbuff, size_t buffsize, char mask)
buffsize -> taille de ton tableau de caractère
mask -> le caractère à afficher à la place des caractère saisie, donc dans ton cas : '*'
Au retour de la fonction, tu aura la taille des informations saisies par l'utilisateur, et les données se trouvent dans ton tableau "pbuff"