Bonjour à tous,
Cette question est sans doute récurrente, mais comment est-il possible d'entrer un mot de passe sans que ce dernier ne soit affiché sur la sortie standard avec les bibliothèques C usuelles ?
Merci d'avance
Version imprimable
Bonjour à tous,
Cette question est sans doute récurrente, mais comment est-il possible d'entrer un mot de passe sans que ce dernier ne soit affiché sur la sortie standard avec les bibliothèques C usuelles ?
Merci d'avance
Salut,
Ce n'est pas possible en C standard car "ne pas afficher ce qu'on tape" est une fonctionnalité du terminal (et le C ne sait pas ce qu'il existe un terminal).
Des bibliotheques comme ncurses (ou pdcurses => ncruses version cross platform) pourraient surement permettre cela.
une autre idée (mais pas testé donc je sais pas si ca marche) est de récupérer ton mot de passe caractère par caractère (getchar) et apres chaque getchar(), d'effacer l'ecran par un putchar() de backspace.
A voir
man 3 getpass
Merci pour vos réponses, getpass() fait exactement ce que je veux. Par contre vous dites que ce n'est pas du "C standard", que cela signifie-t-il au juste ?
Ce n'est pas du C n'utilisant que les fonctions décrites dans le standard C90 ou C99.
getpass() par exemple n'est pas une fonction standard.
getpass() n'est en effet pas standard et a été suprimmée de POSIX.1-2001 (voir le man). Si je dois réaliser une saisie de mot de passe avec une interface en mode texte, j'utilise de préférence PDCurses qui me semble à l'heure actuelle la solution la plus portable.
Thierry